/// <inheritdoc /> public override async Task ClearReadBuffers() { using (await ReadBuffer.BufferLock.LockAsync().ConfigureAwait(false)) { //Reset the crypto buffer CryptoBlockOverflowReadIndex = CryptoBlockOverflow.Length; await DecoratedClient.ClearReadBuffers() .ConfigureAwait(false); } }
/// <inheritdoc /> public async Task <NetworkIncomingMessage <TReadPayloadBaseType> > ReadAsync(CancellationToken token) { using (await ReadLock.LockAsync(token).ConfigureAwait(false)) { //We want to clear the read buffers after reaiding a full message. NetworkIncomingMessage <TReadPayloadBaseType> message = await DecoratedClient.ReadAsync(token) .ConfigureAwait(false); //Do not call the object's ClearBuffer or we will deadlock; isn't re-enterant await DecoratedClient.ClearReadBuffers() .ConfigureAwait(false); //Could be null if the socket disconnected return(message); } }
/// <inheritdoc /> public override async Task ClearReadBuffers() { using (await readSynObj.LockAsync().ConfigureAwait(false)) await DecoratedClient.ClearReadBuffers() .ConfigureAwait(false); }
/// <inheritdoc /> public override async Task ClearReadBuffers() { using (await readSynObj.LockAsync().ConfigureAwait(!GladMMOAsyncSettings.ConfigureAwaitFalseSupported)) await DecoratedClient.ClearReadBuffers() .ConfigureAwaitFalseVoid(); }
/// <inheritdoc /> public override Task ClearReadBuffers() { return(DecoratedClient.ClearReadBuffers()); }