Skip to content

Commit f3ccbcf

Browse files
rbenzingclaude
andcommitted
fix: remove await Task.FromResult no-op allocations in InMemoryStorageProvider and X3DHProtocol
Eliminated unnecessary async state machine allocations in InMemoryStorageProvider by converting 8 methods (DeleteAsync, ExistsAsync, ClearAllAsync, SetAsync<T>, GetAsync<T>, GetKeysAsync, GetMetadataAsync, GetStatisticsAsync) from async/await Task.FromResult patterns to direct Task.FromResult returns without the async keyword. Methods that genuinely await other async calls (StoreAsync, StoreBinaryAsync, RetrieveAsync, RetrieveBinaryAsync, ListKeysAsync, BatchAsync, HealthCheckAsync) are unchanged. X3DHProtocol.ValidateKeyBundleAsync was already correct (no async keyword, uses Task.FromResult directly). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 917f77d commit f3ccbcf

1 file changed

Lines changed: 27 additions & 27 deletions

File tree

LibEmiddle/Storage/InMemoryStorageProvider.cs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -58,24 +58,24 @@ public async Task<string> RetrieveAsync(string key)
5858
return wrapper?.Value;
5959
}
6060

61-
public async Task<bool> DeleteAsync(string key)
61+
public Task<bool> DeleteAsync(string key)
6262
{
6363
var result = _storage.TryRemove(key, out _);
64-
return await Task.FromResult(result);
64+
return Task.FromResult(result);
6565
}
6666

67-
public async Task<bool> ExistsAsync(string key)
67+
public Task<bool> ExistsAsync(string key)
6868
{
6969
if (_storage.TryGetValue(key, out var item))
7070
{
7171
if (item.Metadata.IsExpired)
7272
{
7373
_storage.TryRemove(key, out _);
74-
return await Task.FromResult(false);
74+
return Task.FromResult(false);
7575
}
76-
return await Task.FromResult(true);
76+
return Task.FromResult(true);
7777
}
78-
return await Task.FromResult(false);
78+
return Task.FromResult(false);
7979
}
8080

8181
public async Task<List<string>> ListKeysAsync(string keyPrefix)
@@ -84,17 +84,17 @@ public async Task<List<string>> ListKeysAsync(string keyPrefix)
8484
return keys.ToList();
8585
}
8686

87-
public async Task ClearAllAsync()
87+
public Task ClearAllAsync()
8888
{
8989
_storage.Clear();
90-
await Task.CompletedTask;
90+
return Task.CompletedTask;
9191
}
9292

9393
#endregion
9494

9595
#region IEnhancedStorageProvider Implementation (v2.5)
9696

97-
public async Task<bool> SetAsync<T>(string key, T value, TimeSpan? expiry = null) where T : class
97+
public Task<bool> SetAsync<T>(string key, T value, TimeSpan? expiry = null) where T : class
9898
{
9999
try
100100
{
@@ -122,15 +122,15 @@ public async Task<bool> SetAsync<T>(string key, T value, TimeSpan? expiry = null
122122
return item;
123123
});
124124

125-
return await Task.FromResult(true);
125+
return Task.FromResult(true);
126126
}
127127
catch (Exception)
128128
{
129-
return await Task.FromResult(false);
129+
return Task.FromResult(false);
130130
}
131131
}
132132

133-
public async Task<T?> GetAsync<T>(string key) where T : class
133+
public Task<T?> GetAsync<T>(string key) where T : class
134134
{
135135
try
136136
{
@@ -139,22 +139,22 @@ public async Task<bool> SetAsync<T>(string key, T value, TimeSpan? expiry = null
139139
if (item.Metadata.IsExpired)
140140
{
141141
_storage.TryRemove(key, out _);
142-
return await Task.FromResult<T?>(null);
142+
return Task.FromResult<T?>(null);
143143
}
144144

145145
var result = JsonSerializer.Deserialize<T>(item.Data, _jsonOptions);
146-
return await Task.FromResult(result);
146+
return Task.FromResult(result);
147147
}
148148

149-
return await Task.FromResult<T?>(null);
149+
return Task.FromResult<T?>(null);
150150
}
151151
catch (Exception)
152152
{
153-
return await Task.FromResult<T?>(null);
153+
return Task.FromResult<T?>(null);
154154
}
155155
}
156156

157-
public async Task<IEnumerable<string>> GetKeysAsync(string pattern = "*")
157+
public Task<IEnumerable<string>> GetKeysAsync(string pattern = "*")
158158
{
159159
try
160160
{
@@ -174,15 +174,15 @@ public async Task<IEnumerable<string>> GetKeysAsync(string pattern = "*")
174174
}
175175
}
176176

177-
return await Task.FromResult<IEnumerable<string>>(validKeys);
177+
return Task.FromResult<IEnumerable<string>>(validKeys);
178178
}
179179
catch (Exception)
180180
{
181-
return await Task.FromResult(Enumerable.Empty<string>());
181+
return Task.FromResult(Enumerable.Empty<string>());
182182
}
183183
}
184184

185-
public async Task<StorageMetadata?> GetMetadataAsync(string key)
185+
public Task<StorageMetadata?> GetMetadataAsync(string key)
186186
{
187187
try
188188
{
@@ -191,17 +191,17 @@ public async Task<IEnumerable<string>> GetKeysAsync(string pattern = "*")
191191
if (item.Metadata.IsExpired)
192192
{
193193
_storage.TryRemove(key, out _);
194-
return await Task.FromResult<StorageMetadata?>(null);
194+
return Task.FromResult<StorageMetadata?>(null);
195195
}
196196

197-
return await Task.FromResult<StorageMetadata?>(item.Metadata);
197+
return Task.FromResult<StorageMetadata?>(item.Metadata);
198198
}
199199

200-
return await Task.FromResult<StorageMetadata?>(null);
200+
return Task.FromResult<StorageMetadata?>(null);
201201
}
202202
catch (Exception)
203203
{
204-
return await Task.FromResult<StorageMetadata?>(null);
204+
return Task.FromResult<StorageMetadata?>(null);
205205
}
206206
}
207207

@@ -265,7 +265,7 @@ public async Task<bool> BatchAsync(IEnumerable<StorageOperation> operations)
265265
}
266266
}
267267

268-
public async Task<StorageStatistics> GetStatisticsAsync()
268+
public Task<StorageStatistics> GetStatisticsAsync()
269269
{
270270
try
271271
{
@@ -293,11 +293,11 @@ public async Task<StorageStatistics> GetStatisticsAsync()
293293
["ConcurrentDictionarySize"] = _storage.Count
294294
}
295295
};
296-
return await Task.FromResult(result);
296+
return Task.FromResult(result);
297297
}
298298
catch (Exception)
299299
{
300-
return await Task.FromResult(new StorageStatistics());
300+
return Task.FromResult(new StorageStatistics());
301301
}
302302
}
303303

0 commit comments

Comments
 (0)