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

◆ SendFrameLockAcquiredNonCancelableAsync()

ValueTask System.Net.WebSockets.ManagedWebSocket.SendFrameLockAcquiredNonCancelableAsync ( MessageOpcode opcode,
bool endOfMessage,
bool disableCompression,
ReadOnlyMemory< byte > payloadBuffer )
inlineprivate

Definition at line 860 of file ManagedWebSocket.cs.

861 {
862 ValueTask valueTask = default(ValueTask);
863 bool flag = true;
864 try
865 {
866 int length = WriteFrameToSendBuffer(opcode, endOfMessage, disableCompression, payloadBuffer.Span);
867 valueTask = _stream.WriteAsync(new ReadOnlyMemory<byte>(_sendBuffer, 0, length));
868 if (valueTask.IsCompleted)
869 {
870 return valueTask;
871 }
872 flag = false;
873 }
874 catch (Exception ex)
875 {
876 return new ValueTask(Task.FromException((ex is OperationCanceledException) ? ex : ((_state == WebSocketState.Aborted) ? CreateOperationCanceledException(ex) : new WebSocketException(WebSocketError.ConnectionClosedPrematurely, ex))));
877 }
878 finally
879 {
880 if (flag)
881 {
884 }
885 }
886 return WaitForWriteTaskAsync(valueTask);
887 }
Task WriteAsync(byte[] buffer, int offset, int count)
Definition Stream.cs:914
async ValueTask WaitForWriteTaskAsync(ValueTask writeTask)
static Exception CreateOperationCanceledException(Exception innerException, CancellationToken cancellationToken=default(CancellationToken))
int WriteFrameToSendBuffer(MessageOpcode opcode, bool endOfMessage, bool disableCompression, ReadOnlySpan< byte > payloadBuffer)
static Task FromException(Exception exception)
Definition Task.cs:3341
unsafe ReadOnlySpan< T > Span

References System.Net.WebSockets.ManagedWebSocket._sendBuffer, System.Net.WebSockets.ManagedWebSocket._sendMutex, System.Net.WebSockets.ManagedWebSocket._state, System.Net.WebSockets.ManagedWebSocket._stream, System.Net.WebSockets.ManagedWebSocket.CreateOperationCanceledException(), System.Threading.AsyncMutex.Exit(), System.Threading.Tasks.Task< TResult >.FromException(), System.Threading.Tasks.ValueTask< TResult >.IsCompleted, System.length, System.Net.WebSockets.ManagedWebSocket.ReleaseSendBuffer(), System.ReadOnlyMemory< T >.Span, System.Net.WebSockets.ManagedWebSocket.WaitForWriteTaskAsync(), System.IO.Stream.WriteAsync(), and System.Net.WebSockets.ManagedWebSocket.WriteFrameToSendBuffer().

Referenced by System.Net.WebSockets.ManagedWebSocket.SendFrameAsync().