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

◆ SetupMultipleBuffers()

void System.Net.Sockets.SocketAsyncEventArgs.SetupMultipleBuffers ( )
inlineprivateinherited

Definition at line 1528 of file SocketAsyncEventArgs.cs.

1529 {
1530 if (_bufferListInternal == null || _bufferListInternal.Count == 0)
1531 {
1532 if (_pinState == PinState.MultipleBuffer)
1533 {
1535 }
1536 return;
1537 }
1539 try
1540 {
1543 {
1545 }
1546 for (int i = 0; i < count; i++)
1547 {
1548 _multipleBufferMemoryHandles[i] = _bufferListInternal[i].Array.AsMemory().Pin();
1549 }
1551 {
1552 _wsaBufferArrayPinned = GC.AllocateUninitializedArray<WSABuffer>(count, pinned: true);
1553 }
1554 for (int j = 0; j < count; j++)
1555 {
1559 }
1560 _pinState = PinState.MultipleBuffer;
1561 }
1562 catch (Exception)
1563 {
1565 throw;
1566 }
1567 }
List< ArraySegment< byte > > _bufferListInternal
static unsafe IntPtr UnsafeAddrOfPinnedArrayElement(Array arr, int index)
Definition Marshal.cs:775

References System.Net.Sockets.SocketAsyncEventArgs._bufferListInternal, System.Net.Sockets.SocketAsyncEventArgs._multipleBufferMemoryHandles, System.Net.Sockets.SocketAsyncEventArgs._pinState, System.Net.Sockets.SocketAsyncEventArgs._wsaBufferArrayPinned, System.count, System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Net.Sockets.SocketAsyncEventArgs.FreePinHandles(), System.Net.Sockets.WSABuffer.Length, System.Net.Sockets.WSABuffer.Pointer, and System.Runtime.InteropServices.Marshal.UnsafeAddrOfPinnedArrayElement().