Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ FlushAsyncInternal()

async Task System.IO.Strategies.BufferedFileStreamStrategy.FlushAsyncInternal ( CancellationToken cancellationToken)
inlineprivate

Definition at line 919 of file BufferedFileStreamStrategy.cs.

920 {
921 await EnsureAsyncActiveSemaphoreInitialized().WaitAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
922 try
923 {
924 if (_writePos > 0)
925 {
926 await _strategy.WriteAsync(new ReadOnlyMemory<byte>(_buffer, 0, _writePos), cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
927 _writePos = 0;
928 }
929 else if (_readPos < _readLen && _strategy.CanSeek)
930 {
931 FlushRead();
932 }
933 }
934 finally
935 {
937 }
938 }
Task WriteAsync(byte[] buffer, int offset, int count)
Definition Stream.cs:914
SemaphoreSlim _asyncActiveSemaphore
Definition Stream.cs:490
SemaphoreSlim EnsureAsyncActiveSemaphoreInitialized()
Definition Stream.cs:535
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226

References System.IO.Stream._asyncActiveSemaphore, System.IO.Strategies.BufferedFileStreamStrategy._buffer, System.IO.Strategies.BufferedFileStreamStrategy._readLen, System.IO.Strategies.BufferedFileStreamStrategy._readPos, System.IO.Strategies.BufferedFileStreamStrategy._strategy, System.IO.Strategies.BufferedFileStreamStrategy._writePos, System.cancellationToken, System.IO.Stream.CanSeek, System.Threading.Tasks.Task< TResult >.ConfigureAwait(), System.IO.Stream.EnsureAsyncActiveSemaphoreInitialized(), System.IO.Strategies.BufferedFileStreamStrategy.FlushRead(), System.Threading.SemaphoreSlim.Release(), System.Threading.SemaphoreSlim.WaitAsync(), and System.IO.Stream.WriteAsync().

Referenced by System.IO.Strategies.BufferedFileStreamStrategy.FlushAsync().