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

◆ FlushAsyncInternal()

async Task System.IO.BufferedStream.FlushAsyncInternal ( CancellationToken cancellationToken)
inlineprivate

Definition at line 255 of file BufferedStream.cs.

256 {
257 await EnsureAsyncActiveSemaphoreInitialized().WaitAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
258 try
259 {
260 if (_writePos > 0)
261 {
262 await FlushWriteAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
263 }
264 else if (_readPos < _readLen)
265 {
266 if (_stream.CanSeek)
267 {
268 FlushRead();
269 }
270 if (_stream.CanWrite)
271 {
272 await _stream.FlushAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
273 }
274 }
275 else if (_stream.CanWrite)
276 {
277 await _stream.FlushAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false);
278 }
279 }
280 finally
281 {
283 }
284 }
async ValueTask FlushWriteAsync(CancellationToken cancellationToken)
Task FlushAsync()
Definition Stream.cs:669
SemaphoreSlim _asyncActiveSemaphore
Definition Stream.cs:490
SemaphoreSlim EnsureAsyncActiveSemaphoreInitialized()
Definition Stream.cs:535
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226
ConfiguredValueTaskAwaitable ConfigureAwait(bool continueOnCapturedContext)
Definition ValueTask.cs:312

References System.IO.Stream._asyncActiveSemaphore, System.IO.BufferedStream._readLen, System.IO.BufferedStream._readPos, System.IO.BufferedStream._stream, System.IO.BufferedStream._writePos, System.cancellationToken, System.IO.Stream.CanSeek, System.IO.Stream.CanWrite, System.Threading.Tasks.Task< TResult >.ConfigureAwait(), System.Threading.Tasks.ValueTask< TResult >.ConfigureAwait(), System.IO.Stream.EnsureAsyncActiveSemaphoreInitialized(), System.IO.Stream.FlushAsync(), System.IO.BufferedStream.FlushRead(), System.IO.BufferedStream.FlushWriteAsync(), System.Threading.SemaphoreSlim.Release(), and System.Threading.SemaphoreSlim.WaitAsync().

Referenced by System.IO.BufferedStream.FlushAsync().