From 33215f2ea27397b2a91a4b22a4773b97a38741bf Mon Sep 17 00:00:00 2001 From: james-fairbairn Date: Thu, 19 Dec 2024 14:59:13 +0000 Subject: [PATCH] Configure await false everywhere(#247) refactor: configure await false everywhere --- src/Enyim.Caching/DistributedCache.cs | 22 +++---- src/Enyim.Caching/Memcached/MemcachedNode.cs | 44 ++++++------- src/Enyim.Caching/Memcached/PooledSocket.cs | 22 +++---- .../Memcached/Protocol/Binary/BinaryNode.cs | 10 +-- .../Protocol/Binary/BinaryResponse.cs | 4 +- .../Binary/BinarySingleItemOperation.cs | 2 +- .../Protocol/Binary/FlushOperation.cs | 2 +- .../Protocol/Binary/MultiGetOperation.cs | 4 +- .../Memcached/Protocol/Binary/SaslStep.cs | 2 +- .../Protocol/Binary/StatsOperation.cs | 2 +- .../Memcached/Protocol/Operation.cs | 4 +- src/Enyim.Caching/MemcachedClient.Results.cs | 2 +- src/Enyim.Caching/MemcachedClient.cs | 64 +++++++++---------- src/Enyim.Caching/NullMemcachedClient.cs | 21 +++--- 14 files changed, 102 insertions(+), 103 deletions(-) diff --git a/src/Enyim.Caching/DistributedCache.cs b/src/Enyim.Caching/DistributedCache.cs index c9ba9b9c..c550b850 100644 --- a/src/Enyim.Caching/DistributedCache.cs +++ b/src/Enyim.Caching/DistributedCache.cs @@ -24,11 +24,11 @@ byte[] IDistributedCache.Get(string key) async Task IDistributedCache.GetAsync(string key, CancellationToken token = default) { - var value = await GetValueAsync(key); + var value = await GetValueAsync(key).ConfigureAwait(false); if (value != null) { - await RefreshAsync(key); + await RefreshAsync(key).ConfigureAwait(false); } return value; @@ -58,17 +58,17 @@ void IDistributedCache.Set(string key, byte[] value, DistributedCacheEntryOption { if (!HasSlidingExpiration(options)) { - await PerformStoreAsync(StoreMode.Set, key, value, 0); + await PerformStoreAsync(StoreMode.Set, key, value, 0).ConfigureAwait(false); return; } var expiration = GetExpiration(options); - await PerformStoreAsync(StoreMode.Set, key, value, expiration); + await PerformStoreAsync(StoreMode.Set, key, value, expiration).ConfigureAwait(false); if (options.SlidingExpiration.HasValue) { var sldExp = options.SlidingExpiration.Value; - await AddAsync(GetSlidingExpirationKey(key), sldExp.ToString(), sldExp); + await AddAsync(GetSlidingExpirationKey(key), sldExp.ToString(), sldExp).ConfigureAwait(false); } } @@ -108,15 +108,15 @@ public void Refresh(string key) public async Task RefreshAsync(string key, CancellationToken token = default) { var sldExpKey = GetSlidingExpirationKey(key); - var sldExpStr = await GetValueAsync(sldExpKey); + var sldExpStr = await GetValueAsync(sldExpKey).ConfigureAwait(false); if (!string.IsNullOrEmpty(sldExpStr) && TimeSpan.TryParse(sldExpStr, out var sldExp)) { - var value = (await GetAsync(key)).Value; + var value = (await GetAsync(key).ConfigureAwait(false)).Value; if (value != null) { - await ReplaceAsync(key, value, sldExp); - await ReplaceAsync(sldExpKey, sldExpStr, sldExp); + await ReplaceAsync(key, value, sldExp).ConfigureAwait(false); + await ReplaceAsync(sldExpKey, sldExpStr, sldExp).ConfigureAwait(false); } } } @@ -129,8 +129,8 @@ void IDistributedCache.Remove(string key) async Task IDistributedCache.RemoveAsync(string key, CancellationToken token = default) { - await RemoveAsync(key); - await RemoveAsync(GetSlidingExpirationKey(key)); + await RemoveAsync(key).ConfigureAwait(false); + await RemoveAsync(GetSlidingExpirationKey(key)).ConfigureAwait(false); } private uint GetExpiration(DistributedCacheEntryOptions options) diff --git a/src/Enyim.Caching/Memcached/MemcachedNode.cs b/src/Enyim.Caching/Memcached/MemcachedNode.cs index 30029f9f..b4615e6b 100755 --- a/src/Enyim.Caching/Memcached/MemcachedNode.cs +++ b/src/Enyim.Caching/Memcached/MemcachedNode.cs @@ -214,7 +214,7 @@ public async Task AcquireAsync() var result = new PooledSocketResult(); if (!_isInitialized) { - if (!await poolInitSemaphore.WaitAsync(_initPoolTimeout)) + if (!await poolInitSemaphore.WaitAsync(_initPoolTimeout).ConfigureAwait(false)) { return result.Fail("Timeout to poolInitSemaphore.Wait", _logger) as PooledSocketResult; } @@ -224,7 +224,7 @@ public async Task AcquireAsync() if (!_isInitialized) { var startTime = DateTime.Now; - await _internalPoolImpl.InitPoolAsync(); + await _internalPoolImpl.InitPoolAsync().ConfigureAwait(false); _isInitialized = true; if (_logger.IsEnabled(LogLevel.Information)) @@ -242,7 +242,7 @@ public async Task AcquireAsync() try { - return await _internalPoolImpl.AcquireAsync(); + return await _internalPoolImpl.AcquireAsync().ConfigureAwait(false); } catch (Exception e) { @@ -397,7 +397,7 @@ internal async Task InitPoolAsync() { try { - _freeItems.Push(await CreateSocketAsync()); + _freeItems.Push(await CreateSocketAsync().ConfigureAwait(false)); } catch (Exception ex) { @@ -423,7 +423,7 @@ internal async Task InitPoolAsync() private async Task CreateSocketAsync() { - var ps = await _ownerNode.CreateSocketAsync(); + var ps = await _ownerNode.CreateSocketAsync().ConfigureAwait(false); ps.CleanupCallback = ReleaseSocket; return ps; @@ -586,7 +586,7 @@ public async Task AcquireAsync() PooledSocket socket = null; - if (!await _semaphore.WaitAsync(_queueTimeout)) + if (!await _semaphore.WaitAsync(_queueTimeout).ConfigureAwait(false)) { message = "Pool is full, timeouting. " + _endPoint; if (_isDebugEnabled) _logger.LogDebug(message); @@ -616,9 +616,9 @@ public async Task AcquireAsync() { var resetTask = socket.ResetAsync(); - if (await Task.WhenAny(resetTask, Task.Delay(_receiveTimeout)) == resetTask) + if (await Task.WhenAny(resetTask, Task.Delay(_receiveTimeout)).ConfigureAwait(false) == resetTask) { - await resetTask; + await resetTask.ConfigureAwait(false); } else { @@ -662,7 +662,7 @@ public async Task AcquireAsync() { // okay, create the new item var startTime = DateTime.Now; - socket = await CreateSocketAsync(); + socket = await CreateSocketAsync().ConfigureAwait(false); if (_logger.IsEnabled(LogLevel.Information)) { @@ -927,13 +927,13 @@ protected internal virtual async Task CreateSocketAsync() { try { - return await CreateSocketInternalAsync(); + return await CreateSocketInternalAsync().ConfigureAwait(false); } catch { try { - return await CreateSocketInternalAsync(); + return await CreateSocketInternalAsync().ConfigureAwait(false); } catch (Exception ex) { @@ -951,7 +951,7 @@ private async Task CreateSocketInternalAsync() #else _useSslStream, _useIPv6); #endif - await ps.ConnectAsync(); + await ps.ConnectAsync().ConfigureAwait(false); return ps; } @@ -1018,7 +1018,7 @@ protected virtual async Task ExecuteOperationAsync(IOperati _logger.LogDebug($"ExecuteOperationAsync({op})"); } - var result = await AcquireAsync(); + var result = await AcquireAsync().ConfigureAwait(false); if (result.Success && result.HasValue) { try @@ -1034,13 +1034,13 @@ protected virtual async Task ExecuteOperationAsync(IOperati } var writeSocketTask = pooledSocket.WriteAsync(b); - if (await Task.WhenAny(writeSocketTask, Task.Delay(_config.ConnectionTimeout)) != writeSocketTask) + if (await Task.WhenAny(writeSocketTask, Task.Delay(_config.ConnectionTimeout)).ConfigureAwait(false) != writeSocketTask) { result.Fail("Timeout to pooledSocket.WriteAsync"); return result; } - await writeSocketTask; + await writeSocketTask.ConfigureAwait(false); //if Get, call BinaryResponse if (_logger.IsEnabled(LogLevel.Debug)) @@ -1049,13 +1049,13 @@ protected virtual async Task ExecuteOperationAsync(IOperati } var readResponseTask = op.ReadResponseAsync(pooledSocket); - if (await Task.WhenAny(readResponseTask, Task.Delay(_config.ConnectionTimeout)) != readResponseTask) + if (await Task.WhenAny(readResponseTask, Task.Delay(_config.ConnectionTimeout)).ConfigureAwait(false) != readResponseTask) { result.Fail($"Timeout to ReadResponseAsync(pooledSocket) for {op}"); return result; } - var readResult = await readResponseTask; + var readResult = await readResponseTask.ConfigureAwait(false); if (readResult.Success) { result.Pass(); @@ -1103,7 +1103,7 @@ protected virtual async Task ExecuteOperationAsync(IOperati protected virtual async Task ExecuteOperationAsync(IOperation op, Action next) { - var socket = (await AcquireAsync()).Value; + var socket = (await AcquireAsync().ConfigureAwait(false)).Value; if (socket == null) return false; //key(string) to buffer(btye[]) @@ -1111,14 +1111,14 @@ protected virtual async Task ExecuteOperationAsync(IOperation op, Action { ((IDisposable)socket).Dispose(); next(readSuccess); - }); + }).ConfigureAwait(false); return rrs; } @@ -1164,12 +1164,12 @@ IOperationResult IMemcachedNode.Execute(IOperation op) async Task IMemcachedNode.ExecuteAsync(IOperation op) { - return await ExecuteOperationAsync(op); + return await ExecuteOperationAsync(op).ConfigureAwait(false); } async Task IMemcachedNode.ExecuteAsync(IOperation op, Action next) { - return await ExecuteOperationAsync(op, next); + return await ExecuteOperationAsync(op, next).ConfigureAwait(false); } event Action IMemcachedNode.Failed diff --git a/src/Enyim.Caching/Memcached/PooledSocket.cs b/src/Enyim.Caching/Memcached/PooledSocket.cs index a45da1bd..784a8585 100755 --- a/src/Enyim.Caching/Memcached/PooledSocket.cs +++ b/src/Enyim.Caching/Memcached/PooledSocket.cs @@ -156,9 +156,9 @@ public async Task ConnectAsync() { var connTask = _socket.ConnectAsync(_endpoint); - if (await Task.WhenAny(connTask, Task.Delay(_connectionTimeout)) == connTask) + if (await Task.WhenAny(connTask, Task.Delay(_connectionTimeout)).ConfigureAwait(false) == connTask) { - await connTask; + await connTask.ConfigureAwait(false); } else { @@ -174,7 +174,7 @@ public async Task ConnectAsync() { var ep = GetIPEndPoint(_endpoint); if (_isSocketDisposed) return false; - await _socket.ConnectAsync(ep.Address, ep.Port); + await _socket.ConnectAsync(ep.Address, ep.Port).ConfigureAwait(false); } if (_socket != null) @@ -200,7 +200,7 @@ await _sslStream.AuthenticateAsClientAsync( #else ((DnsEndPoint)_endpoint).Host #endif - ); + ).ConfigureAwait(false); } else { @@ -253,8 +253,6 @@ public void Reset() public async Task ResetAsync() { - // await _inputStream.FlushAsync(); - int available = _socket.Available; if (available > 0) @@ -268,7 +266,7 @@ public async Task ResetAsync() byte[] data = new byte[available]; - await ReadAsync(data, 0, available); + await ReadAsync(data, 0, available).ConfigureAwait(false); } if (_logger.IsEnabled(LogLevel.Debug)) @@ -428,8 +426,8 @@ public async Task ReadAsync(byte[] buffer, int offset, int count) try { int currentRead = (_useSslStream - ? await _sslStream.ReadAsync(buffer, offset, shouldRead) - : await _inputStream.ReadAsync(buffer, offset, shouldRead)); + ? await _sslStream.ReadAsync(buffer, offset, shouldRead).ConfigureAwait(false) + : await _inputStream.ReadAsync(buffer, offset, shouldRead).ConfigureAwait(false)); if (currentRead == count) break; if (currentRead < 1) @@ -578,14 +576,14 @@ public async Task WriteAsync(IList> buffers) { foreach (var buf in buffers) { - await _sslStream.WriteAsync(buf.Array, 0, buf.Count); + await _sslStream.WriteAsync(buf.Array, 0, buf.Count).ConfigureAwait(false); } - await _sslStream.FlushAsync(); + await _sslStream.FlushAsync().ConfigureAwait(false); } else { - var bytesTransferred = await _socket.SendAsync(buffers, SocketFlags.None); + var bytesTransferred = await _socket.SendAsync(buffers, SocketFlags.None).ConfigureAwait(false); if (bytesTransferred <= 0) { _isAlive = false; diff --git a/src/Enyim.Caching/Memcached/Protocol/Binary/BinaryNode.cs b/src/Enyim.Caching/Memcached/Protocol/Binary/BinaryNode.cs index 18d19deb..bfafd770 100644 --- a/src/Enyim.Caching/Memcached/Protocol/Binary/BinaryNode.cs +++ b/src/Enyim.Caching/Memcached/Protocol/Binary/BinaryNode.cs @@ -58,9 +58,9 @@ protected internal override PooledSocket CreateSocket() protected internal override async Task CreateSocketAsync() { - var retval = await base.CreateSocketAsync(); + var retval = await base.CreateSocketAsync().ConfigureAwait(false); - if (_authenticationProvider != null && !(await AuthAsync(retval))) + if (_authenticationProvider != null && !await AuthAsync(retval).ConfigureAwait(false)) { _logger.LogError("Authentication failed: " + EndPoint); @@ -105,15 +105,15 @@ private async Task AuthAsync(PooledSocket socket) { SaslStep currentStep = new SaslStart(_authenticationProvider); - await socket.WriteAsync(currentStep.GetBuffer()); + await socket.WriteAsync(currentStep.GetBuffer()).ConfigureAwait(false); - while (!(await currentStep.ReadResponseAsync(socket)).Success) + while (!(await currentStep.ReadResponseAsync(socket).ConfigureAwait(false)).Success) { // challenge-response authentication if (currentStep.StatusCode == 0x21) { currentStep = new SaslContinue(_authenticationProvider, currentStep.Data); - await socket.WriteAsync(currentStep.GetBuffer()); + await socket.WriteAsync(currentStep.GetBuffer()).ConfigureAwait(false); } else { diff --git a/src/Enyim.Caching/Memcached/Protocol/Binary/BinaryResponse.cs b/src/Enyim.Caching/Memcached/Protocol/Binary/BinaryResponse.cs index b5edb281..38cef74e 100644 --- a/src/Enyim.Caching/Memcached/Protocol/Binary/BinaryResponse.cs +++ b/src/Enyim.Caching/Memcached/Protocol/Binary/BinaryResponse.cs @@ -80,7 +80,7 @@ public async Task ReadAsync(PooledSocket socket) if (!socket.IsAlive) return false; var header = new byte[HeaderLength]; - await socket.ReadAsync(header, 0, header.Length); + await socket.ReadAsync(header, 0, header.Length).ConfigureAwait(false); int dataLength, extraLength; @@ -89,7 +89,7 @@ public async Task ReadAsync(PooledSocket socket) if (dataLength > 0) { var data = new byte[dataLength]; - await socket.ReadAsync(data, 0, dataLength); + await socket.ReadAsync(data, 0, dataLength).ConfigureAwait(false); Extra = new ArraySegment(data, 0, extraLength); Data = new ArraySegment(data, extraLength, data.Length - extraLength); diff --git a/src/Enyim.Caching/Memcached/Protocol/Binary/BinarySingleItemOperation.cs b/src/Enyim.Caching/Memcached/Protocol/Binary/BinarySingleItemOperation.cs index f3f6324f..cc4f338e 100644 --- a/src/Enyim.Caching/Memcached/Protocol/Binary/BinarySingleItemOperation.cs +++ b/src/Enyim.Caching/Memcached/Protocol/Binary/BinarySingleItemOperation.cs @@ -47,7 +47,7 @@ protected internal override IOperationResult ReadResponse(PooledSocket socket) protected internal override async ValueTask ReadResponseAsync(PooledSocket socket) { var response = new BinaryResponse(); - var retval = await response.ReadAsync(socket); + var retval = await response.ReadAsync(socket).ConfigureAwait(false); Cas = response.CAS; StatusCode = response.StatusCode; diff --git a/src/Enyim.Caching/Memcached/Protocol/Binary/FlushOperation.cs b/src/Enyim.Caching/Memcached/Protocol/Binary/FlushOperation.cs index efbed09b..8f5a5b97 100644 --- a/src/Enyim.Caching/Memcached/Protocol/Binary/FlushOperation.cs +++ b/src/Enyim.Caching/Memcached/Protocol/Binary/FlushOperation.cs @@ -36,7 +36,7 @@ protected internal override IOperationResult ReadResponse(PooledSocket socket) protected internal override async ValueTask ReadResponseAsync(PooledSocket socket) { var response = new BinaryResponse(); - var retval = await response.ReadAsync(socket); + var retval = await response.ReadAsync(socket).ConfigureAwait(false); StatusCode = StatusCode; var result = new BinaryOperationResult() diff --git a/src/Enyim.Caching/Memcached/Protocol/Binary/MultiGetOperation.cs b/src/Enyim.Caching/Memcached/Protocol/Binary/MultiGetOperation.cs index 5f5ac58d..f9849977 100644 --- a/src/Enyim.Caching/Memcached/Protocol/Binary/MultiGetOperation.cs +++ b/src/Enyim.Caching/Memcached/Protocol/Binary/MultiGetOperation.cs @@ -78,7 +78,7 @@ protected internal override IList> GetBuffer() protected internal override async Task ReadResponseAsync(PooledSocket socket, Action next) { - var result = await ReadResponseAsync(socket); + var result = await ReadResponseAsync(socket).ConfigureAwait(false); next(result.Success); return result.Success; } @@ -152,7 +152,7 @@ protected internal override async ValueTask ReadResponseAsync( var response = new BinaryResponse(); - while (await response.ReadAsync(socket)) + while (await response.ReadAsync(socket).ConfigureAwait(false)) { StatusCode = response.StatusCode; diff --git a/src/Enyim.Caching/Memcached/Protocol/Binary/SaslStep.cs b/src/Enyim.Caching/Memcached/Protocol/Binary/SaslStep.cs index f83aba63..4611d542 100644 --- a/src/Enyim.Caching/Memcached/Protocol/Binary/SaslStep.cs +++ b/src/Enyim.Caching/Memcached/Protocol/Binary/SaslStep.cs @@ -38,7 +38,7 @@ protected internal override async ValueTask ReadResponseAsync( { var response = new BinaryResponse(); - var retval = await response.ReadAsync(socket); + var retval = await response.ReadAsync(socket).ConfigureAwait(false); StatusCode = response.StatusCode; Data = response.Data.Array; diff --git a/src/Enyim.Caching/Memcached/Protocol/Binary/StatsOperation.cs b/src/Enyim.Caching/Memcached/Protocol/Binary/StatsOperation.cs index 57035e30..1b720352 100644 --- a/src/Enyim.Caching/Memcached/Protocol/Binary/StatsOperation.cs +++ b/src/Enyim.Caching/Memcached/Protocol/Binary/StatsOperation.cs @@ -64,7 +64,7 @@ protected internal override async ValueTask ReadResponseAsync( var serverData = new Dictionary(); var retval = false; - while ((await response.ReadAsync(socket)) && response.KeyLength > 0) + while ((await response.ReadAsync(socket).ConfigureAwait(false)) && response.KeyLength > 0) { retval = true; diff --git a/src/Enyim.Caching/Memcached/Protocol/Operation.cs b/src/Enyim.Caching/Memcached/Protocol/Operation.cs index 976a578b..96a48ca3 100644 --- a/src/Enyim.Caching/Memcached/Protocol/Operation.cs +++ b/src/Enyim.Caching/Memcached/Protocol/Operation.cs @@ -29,12 +29,12 @@ IOperationResult IOperation.ReadResponse(PooledSocket socket) async Task IOperation.ReadResponseAsync(PooledSocket socket) { - return await ReadResponseAsync(socket); + return await ReadResponseAsync(socket).ConfigureAwait(false); } async Task IOperation.ReadResponseAsync(PooledSocket socket, Action next) { - return await ReadResponseAsync(socket, next); + return await ReadResponseAsync(socket, next).ConfigureAwait(false); } int IOperation.StatusCode diff --git a/src/Enyim.Caching/MemcachedClient.Results.cs b/src/Enyim.Caching/MemcachedClient.Results.cs index 086b4d7b..08ceebad 100644 --- a/src/Enyim.Caching/MemcachedClient.Results.cs +++ b/src/Enyim.Caching/MemcachedClient.Results.cs @@ -492,7 +492,7 @@ public async Task ExecuteRemoveAsync(string key) if (node != null) { var command = _pool.OperationFactory.Delete(hashedKey, 0); - var commandResult = await node.ExecuteAsync(command); + var commandResult = await node.ExecuteAsync(command).ConfigureAwait(false); if (commandResult.Success) { diff --git a/src/Enyim.Caching/MemcachedClient.cs b/src/Enyim.Caching/MemcachedClient.cs index 8ba225e1..cff2c889 100755 --- a/src/Enyim.Caching/MemcachedClient.cs +++ b/src/Enyim.Caching/MemcachedClient.cs @@ -106,22 +106,22 @@ public bool Add(string key, object value, TimeSpan timeSpan) public async Task AddAsync(string key, object value) { - return await StoreAsync(StoreMode.Add, key, value); + return await StoreAsync(StoreMode.Add, key, value).ConfigureAwait(false); } public async Task AddAsync(string key, object value, int cacheSeconds) { - return await StoreAsync(StoreMode.Add, key, value, TimeSpan.FromSeconds(cacheSeconds)); + return await StoreAsync(StoreMode.Add, key, value, TimeSpan.FromSeconds(cacheSeconds)).ConfigureAwait(false); } public async Task AddAsync(string key, object value, uint cacheSeconds) { - return await StoreAsync(StoreMode.Add, key, value, TimeSpan.FromSeconds(cacheSeconds)); + return await StoreAsync(StoreMode.Add, key, value, TimeSpan.FromSeconds(cacheSeconds)).ConfigureAwait(false); } public async Task AddAsync(string key, object value, TimeSpan timeSpan) { - return await StoreAsync(StoreMode.Add, key, value, timeSpan); + return await StoreAsync(StoreMode.Add, key, value, timeSpan).ConfigureAwait(false); } public bool Set(string key, object value, int cacheSeconds) @@ -141,17 +141,17 @@ public bool Set(string key, object value, TimeSpan timeSpan) public async Task SetAsync(string key, object value, int cacheSeconds) { - return await StoreAsync(StoreMode.Set, key, value, TimeSpan.FromSeconds(cacheSeconds)); + return await StoreAsync(StoreMode.Set, key, value, TimeSpan.FromSeconds(cacheSeconds)).ConfigureAwait(false); } public async Task SetAsync(string key, object value, uint cacheSeconds) { - return await StoreAsync(StoreMode.Set, key, value, TimeSpan.FromSeconds(cacheSeconds)); + return await StoreAsync(StoreMode.Set, key, value, TimeSpan.FromSeconds(cacheSeconds)).ConfigureAwait(false); } public async Task SetAsync(string key, object value, TimeSpan timeSpan) { - return await StoreAsync(StoreMode.Set, key, value, timeSpan); + return await StoreAsync(StoreMode.Set, key, value, timeSpan).ConfigureAwait(false); } public bool Replace(string key, object value, int cacheSeconds) @@ -171,17 +171,17 @@ public bool Replace(string key, object value, TimeSpan timeSpan) public async Task ReplaceAsync(string key, object value, int cacheSeconds) { - return await StoreAsync(StoreMode.Replace, key, value, TimeSpan.FromSeconds(cacheSeconds)); + return await StoreAsync(StoreMode.Replace, key, value, TimeSpan.FromSeconds(cacheSeconds)).ConfigureAwait(false); } public async Task ReplaceAsync(string key, object value, uint cacheSeconds) { - return await StoreAsync(StoreMode.Replace, key, value, TimeSpan.FromSeconds(cacheSeconds)); + return await StoreAsync(StoreMode.Replace, key, value, TimeSpan.FromSeconds(cacheSeconds)).ConfigureAwait(false); } public async Task ReplaceAsync(string key, object value, TimeSpan timeSpan) { - return await StoreAsync(StoreMode.Replace, key, value, timeSpan); + return await StoreAsync(StoreMode.Replace, key, value, timeSpan).ConfigureAwait(false); } /// @@ -315,7 +315,7 @@ public async Task GetAsync(string key) try { - var commandResult = await node.ExecuteAsync(command); + var commandResult = await node.ExecuteAsync(command).ConfigureAwait(false); return BuildGetCommandResult(result, command, commandResult); } catch (Exception ex) @@ -342,7 +342,7 @@ public async Task> GetAsync(string key) try { - var commandResult = await node.ExecuteAsync(command); + var commandResult = await node.ExecuteAsync(command).ConfigureAwait(false); return BuildGetCommandResult(result, command, commandResult); } catch (Exception ex) @@ -357,18 +357,18 @@ public async Task> GetAsync(string key) public async Task GetValueAsync(string key) { - var result = await GetAsync(key); + var result = await GetAsync(key).ConfigureAwait(false); return result.Success ? result.Value : default(T); } public async Task GetValueOrCreateAsync(string key, int cacheSeconds, Func> generator) { - var result = await GetAsync(key); + var result = await GetAsync(key).ConfigureAwait(false); if (result.Success) { if (_logger.IsEnabled(LogLevel.Debug)) { - _logger.LogDebug($"Cache is hint. Key is '{key}'."); + _logger.LogDebug($"Cache is hit. Key is '{key}'."); } return result.Value; @@ -379,12 +379,12 @@ public async Task GetValueOrCreateAsync(string key, int cacheSeconds, Func _logger.LogDebug($"Cache is missed. Key is '{key}'."); } - var value = await generator?.Invoke(); + var value = await (generator?.Invoke()).ConfigureAwait(false); if (value != null) { try { - await AddAsync(key, value, cacheSeconds); + await AddAsync(key, value, cacheSeconds).ConfigureAwait(false); if (_logger.IsEnabled(LogLevel.Debug)) { @@ -563,17 +563,17 @@ public bool Store(StoreMode mode, string key, object value, TimeSpan validFor) public async Task StoreAsync(StoreMode mode, string key, object value) { - return (await PerformStoreAsync(mode, key, value, 0)).Success; + return (await PerformStoreAsync(mode, key, value, 0).ConfigureAwait(false)).Success; } public async Task StoreAsync(StoreMode mode, string key, object value, DateTime expiresAt) { - return (await PerformStoreAsync(mode, key, value, MemcachedClient.GetExpiration(null, expiresAt))).Success; + return (await PerformStoreAsync(mode, key, value, MemcachedClient.GetExpiration(null, expiresAt)).ConfigureAwait(false)).Success; } public async Task StoreAsync(StoreMode mode, string key, object value, TimeSpan validFor) { - return (await PerformStoreAsync(mode, key, value, MemcachedClient.GetExpiration(validFor, null))).Success; + return (await PerformStoreAsync(mode, key, value, MemcachedClient.GetExpiration(validFor, null)).ConfigureAwait(false)).Success; } /// @@ -749,7 +749,7 @@ protected async virtual Task PerformStoreAsync(StoreMode } var command = _pool.OperationFactory.Store(mode, hashedKey, item, expires, cas); - var commandResult = await node.ExecuteAsync(command); + var commandResult = await node.ExecuteAsync(command).ConfigureAwait(false); result.Cas = cas = command.CasValue; result.StatusCode = statusCode = command.StatusCode; @@ -958,12 +958,12 @@ public CasResult Decrement(string key, ulong defaultValue, ulong delta, D #region Touch public async Task TouchAsync(string key, DateTime expiresAt) { - return await PerformMutateAsync(MutationMode.Touch, key, 0, 0, GetExpiration(null, expiresAt)); + return await PerformMutateAsync(MutationMode.Touch, key, 0, 0, GetExpiration(null, expiresAt)).ConfigureAwait(false); } public async Task TouchAsync(string key, TimeSpan validFor) { - return await PerformMutateAsync(MutationMode.Touch, key, 0, 0, GetExpiration(validFor, null)); + return await PerformMutateAsync(MutationMode.Touch, key, 0, 0, GetExpiration(validFor, null)).ConfigureAwait(false); } #endregion @@ -1025,7 +1025,7 @@ protected virtual async Task PerformMutateAsync(Mutation if (node != null) { var command = _pool.OperationFactory.Mutate(mode, hashedKey, defaultValue, delta, expires, cas); - var commandResult = await node.ExecuteAsync(command); + var commandResult = await node.ExecuteAsync(command).ConfigureAwait(false); result.Cas = cas = command.CasValue; result.StatusCode = command.StatusCode; @@ -1163,7 +1163,7 @@ public async Task FlushAllAsync() tasks.Add(node.ExecuteAsync(command)); } - await Task.WhenAll(tasks); + await Task.WhenAll(tasks).ConfigureAwait(false); } /// @@ -1214,7 +1214,7 @@ public bool Remove(string key) public async Task RemoveAsync(string key) { - return (await ExecuteRemoveAsync(key)).Success; + return (await ExecuteRemoveAsync(key).ConfigureAwait(false)).Success; } public async Task RemoveMultiAsync(params string[] keys) @@ -1228,11 +1228,11 @@ public async Task RemoveMultiAsync(params string[] keys) tasks[i] = ExecuteRemoveAsync(keys[i]); } - await Task.WhenAll(tasks); + await Task.WhenAll(tasks).ConfigureAwait(false); foreach (var task in tasks) { - if (!(await task).Success) return false; + if (!(await task.ConfigureAwait(false)).Success) return false; } return true; @@ -1253,7 +1253,7 @@ public IDictionary Get(IEnumerable keys) public async Task> GetAsync(IEnumerable keys) { - return await PerformMultiGetAsync(keys, (mget, kvp) => _transcoder.Deserialize(kvp.Value)); + return await PerformMultiGetAsync(keys, (mget, kvp) => _transcoder.Deserialize(kvp.Value)).ConfigureAwait(false); } public IDictionary> GetWithCas(IEnumerable keys) @@ -1271,7 +1271,7 @@ public async Task>> GetWithCasAsync(IEnume { Result = _transcoder.Deserialize(kvp.Value), Cas = mget.Cas[kvp.Key] - }); + }).ConfigureAwait(false); } protected virtual IDictionary PerformMultiGet(IEnumerable keys, Func, T> collector) @@ -1358,7 +1358,7 @@ protected virtual async Task> PerformMultiGetAsync(IEn var mget = _pool.OperationFactory.MultiGet(nodeKeys); var task = Task.Run(async () => { - if ((await node.ExecuteAsync(mget)).Success) + if ((await node.ExecuteAsync(mget).ConfigureAwait(false)).Success) { foreach (var kvp in mget.Result) { @@ -1372,7 +1372,7 @@ protected virtual async Task> PerformMultiGetAsync(IEn tasks.Add(task); } - await Task.WhenAll(tasks); + await Task.WhenAll(tasks).ConfigureAwait(false); return retval; } diff --git a/src/Enyim.Caching/NullMemcachedClient.cs b/src/Enyim.Caching/NullMemcachedClient.cs index 862f696e..39100de6 100644 --- a/src/Enyim.Caching/NullMemcachedClient.cs +++ b/src/Enyim.Caching/NullMemcachedClient.cs @@ -109,17 +109,17 @@ public Task GetAsync(string key) return Task.FromResult(result); } - public async Task> GetAsync(string key) + public Task> GetAsync(string key) { var result = new DefaultGetOperationResultFactory().Create(); result.Success = false; result.Value = default(T); - return await Task.FromResult(result); + return Task.FromResult(result); } - public async Task GetValueAsync(string key) + public Task GetValueAsync(string key) { - return await Task.FromResult(default(T)); + return Task.FromResult(default(T)); } public IDictionary> GetWithCas(IEnumerable keys) @@ -127,9 +127,10 @@ public IDictionary> GetWithCas(IEnumerable key return new Dictionary>(); } - public async Task>> GetWithCasAsync(IEnumerable keys) + public Task>> GetWithCasAsync(IEnumerable keys) { - return await Task.FromResult(new Dictionary>()); + IDictionary> dictionary = new Dictionary>(); + return Task.FromResult(dictionary); } public CasResult GetWithCas(string key) @@ -217,14 +218,14 @@ public bool Store(StoreMode mode, string key, object value, TimeSpan validFor) return false; } - public async Task StoreAsync(StoreMode mode, string key, object value, TimeSpan validFor) + public Task StoreAsync(StoreMode mode, string key, object value, TimeSpan validFor) { - return await Task.FromResult(false); + return Task.FromResult(false); } - public async Task StoreAsync(StoreMode mode, string key, object value, DateTime expiresAt) + public Task StoreAsync(StoreMode mode, string key, object value, DateTime expiresAt) { - return await Task.FromResult(false); + return Task.FromResult(false); } public bool Store(StoreMode mode, string key, object value, DateTime expiresAt)