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

            newTail.Message = continuation;
            fiber.EnqueueInternal(newTail);
        }
示例#2
0
        public override void Post(SendOrPostCallback d, object state)
        {
            var newTail = NodePool <ContextPostMessageNode> .Pop();

            newTail.Delegate = d;
            newTail.State    = state;
            m_Fiber.EnqueueInternal(newTail);
        }
示例#3
0
 public void OnCompleted(Action continuation)
 {
     if (m_Fiber.IsCurrentThread)
     {
         continuation();
     }
     else
     {
         MessageFiberBase.EnqueueInternal(m_Fiber, continuation);
     }
 }
示例#4
0
 public void UnsafeOnCompleted(Action continuation)
 {
     MessageFiberBase.EnqueueInternal(m_Fiber, continuation);
 }