/// <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);
            }
        }
Exemplo n.º 3
0
 /// <inheritdoc />
 public override async Task ClearReadBuffers()
 {
     using (await readSynObj.LockAsync().ConfigureAwait(false))
         await DecoratedClient.ClearReadBuffers()
         .ConfigureAwait(false);
 }
Exemplo n.º 4
0
 /// <inheritdoc />
 public override async Task ClearReadBuffers()
 {
     using (await readSynObj.LockAsync().ConfigureAwait(!GladMMOAsyncSettings.ConfigureAwaitFalseSupported))
         await DecoratedClient.ClearReadBuffers()
         .ConfigureAwaitFalseVoid();
 }
Exemplo n.º 5
0
 /// <inheritdoc />
 public override Task ClearReadBuffers()
 {
     return(DecoratedClient.ClearReadBuffers());
 }