Example #1
0
 private void ReleaseAccept(SocketAsyncEventArgs acceptEventArgs, bool isRelease = true)
 {
     acceptEventArgsPool.Push(acceptEventArgs);
     if (isRelease)
     {
         maxConnectionsEnforcer.Release();
     }
 }
Example #2
0
        private void ReleaseIOEventArgs(SocketAsyncEventArgs ioEventArgs)
        {
            var dataToken = (DataToken)ioEventArgs.UserToken;

            dataToken.Reset(true);
            dataToken.Socket         = null;
            ioEventArgs.AcceptSocket = null;
            ioEventArgsPool.Push(ioEventArgs);
        }
Example #3
0
        private void Accept_Completed(object sender, SocketAsyncEventArgs acceptEventArgs)
        {
            try
            {
                ProcessAccept(acceptEventArgs);
            }
            catch (Exception ex)
            {
                logger.Error(string.Format("AcceptCompleted method error:{0}", ex));

                if (acceptEventArgs.AcceptSocket != null)
                {
                    acceptEventArgs.AcceptSocket.Close();
                    acceptEventArgs.AcceptSocket = null;
                }
                acceptEventArgsPool.Push(acceptEventArgs);
                maxConnectionsEnforcer.Release();
            }
        }
Example #4
0
        private void ReleaseIOEventArgs(SocketAsyncEventArgs ioEventArgs)
        {
            if (ioEventArgs == null)
            {
                return;
            }

            var dataToken = (DataToken)ioEventArgs.UserToken;

            if (dataToken != null)
            {
                dataToken.Reset(true);
                dataToken.Socket = null;
            }
            ioEventArgs.AcceptSocket = null;
            ioEventArgsPool.Push(ioEventArgs);
        }