Example #1
0
        internal static void EnqueueInternal(MessageFiberBase fiber, Action continuation)
        {
            var newTail = NodePool <ActionMessageNode> .Pop();

            newTail.Message = continuation;
            fiber.EnqueueInternal(newTail);
        }
Example #2
0
        public void EnqueueAction(Action action)
        {
            var newTail = NodePool <ActionMessageNode> .Pop();

            newTail.Message = action;
            EnqueueInternal(newTail);
        }
Example #3
0
        public override void Post(SendOrPostCallback d, object state)
        {
            var newTail = NodePool <ContextPostMessageNode> .Pop();

            newTail.Delegate = d;
            newTail.State    = state;
            m_Fiber.EnqueueInternal(newTail);
        }
Example #4
0
        public Task EnqueueTask(Task task)
        {
            var newTail = NodePool <TaskMessageNode> .Pop();

            newTail.Message = task;
            EnqueueInternal(newTail);
            return(task);
        }
Example #5
0
 public override void PushToPool()
 {
     NodePool <TaskMessageNode> .Push(this);
 }
Example #6
0
 public override void PushToPool()
 {
     NodePool <ActionMessageNode> .Push(this);
 }
Example #7
0
 public override void PushToPool()
 {
     NodePool <MessageNode <T> > .Push(this);
 }
Example #8
0
 public override void PushToPool()
 {
     NodePool <ContextPostMessageNode> .Push(this);
 }