internal override void Send(RioBufferSegment segment, RIO_SEND_FLAGS flags)
        {
            Debug.Assert(inUse);
            lastSendStart = RioSocketPool.CurrentTime;
            Interlocked.Increment(ref pendingSends);
            segment._internalCompletionSignal = onSendCompletion;
            segment.socketId = currentId;

            base.Send(segment, flags);
        }
Ejemplo n.º 2
0
 internal unsafe void SendInternal(RioBufferSegment segment, RIO_SEND_FLAGS flags)
 {
     if (!RioStatic.Send(_requestQueue, segment.SegmentPointer, 1, flags, segment.Index))
         WinSock.ThrowLastWSAError();
 }
Ejemplo n.º 3
0
 internal virtual void Send(RioBufferSegment segment, RioBufferSegment remoteAdress, RIO_SEND_FLAGS flags)
 {
     Debug.Assert(inUse);
     if (!RioStatic.SendEx(_requestQueue, segment.SegmentPointer, 1, RIO_BUF.NullSegment, remoteAdress.SegmentPointer, RIO_BUF.NullSegment, RIO_BUF.NullSegment, flags, segment.Index))
     {
         WinSock.ThrowLastWSAError();
     }
 }
Ejemplo n.º 4
0
        internal void SendAndDispose(RioBufferSegment segment, IPEndPoint remoteAdress, RIO_SEND_FLAGS flags)
        {
            Debug.Assert(inUse);
            var adresssegment = AllocateAdress(remoteAdress);

            SendAndDispose(segment, adresssegment, flags);
            adresssegment.Dispose();
        }
Ejemplo n.º 5
0
 internal void Send(RioBufferSegment segment, IPEndPoint remoteAdress, RIO_SEND_FLAGS flags)
 {
     Debug.Assert(inUse);
     var adresssegment = AllocateAdress(remoteAdress);
     Send(segment, adresssegment, flags);
     adresssegment.Dispose();
 }
Ejemplo n.º 6
0
 internal virtual void Send(RioBufferSegment segment, RioBufferSegment remoteAdress, RIO_SEND_FLAGS flags)
 {
     Debug.Assert(inUse);
     if (!RioStatic.SendEx(_requestQueue, segment.SegmentPointer, 1, RIO_BUF.NullSegment, remoteAdress.SegmentPointer, RIO_BUF.NullSegment, RIO_BUF.NullSegment, flags, segment.Index))
         WinSock.ThrowLastWSAError();
 }
Ejemplo n.º 7
0
 internal virtual void SendAndDispose(RioBufferSegment segment, RIO_SEND_FLAGS flags)
 {
     Debug.Assert(inUse);
     segment.DisposeOnComplete();
     if (!RioStatic.Send(_requestQueue, segment.SegmentPointer, 1, flags, segment.Index))
         WinSock.ThrowLastWSAError();
 }