public void ScheduleAsyncAbort(int socket, Exception error)
 {
     _asyncOperationStates[socket] = error;
     _asyncOperationQueue.Enqueue(AsyncOperation.Abort(socket));
     _unblockHandle.UnblockIfRequired();
 }