Exemplo n.º 1
0
        void ScheduleTimeout(IChannelHandlerContext context, Task future)
        {
            var task        = new WriteTimeoutTask(context, future, this);
            var wrappedTask = new LinkedListNode <WriteTimeoutTask>(task);

            task.ScheduledTask = context.Executor.Schedule(task, timeout);

            if (!task.ScheduledTask.Completion.IsCompleted)
            {
                this.AddWriteTimeoutTask(wrappedTask);
            }
        }
Exemplo n.º 2
0
        void ScheduleTimeout(IChannelHandlerContext context, Task future)
        {
            // Schedule a timeout.
            var task = new WriteTimeoutTask(context, future, this);

            task.ScheduledTask = context.Executor.Schedule(task, _timeout);

            if (!task.ScheduledTask.Completion.IsCompleted)
            {
                AddWriteTimeoutTask(task);

                // Cancel the scheduled timeout if the flush promise is complete.
                _ = future.ContinueWith(WriteTimeoutTask.OperationCompleteAction, task, TaskContinuationOptions.ExecuteSynchronously);
            }
        }
Exemplo n.º 3
0
 void RemoveWriteTimeoutTask(WriteTimeoutTask task)
 {
     _ = tasks.Remove(task);
 }
Exemplo n.º 4
0
 void AddWriteTimeoutTask(WriteTimeoutTask task)
 {
     _ = tasks.AddLast(task);
 }
Exemplo n.º 5
0
 void RemoveWriteTimeoutTask(WriteTimeoutTask task)
 {
     this.tasks.Remove(task);
 }
 void AddWriteTimeoutTask(WriteTimeoutTask task)
 {
     this.tasks.AddLast(task);
 }