internal static void EnqueueInternal(MessageFiberBase fiber, Action continuation) { var newTail = NodePool <ActionMessageNode> .Pop(); newTail.Message = continuation; fiber.EnqueueInternal(newTail); }
public override void Post(SendOrPostCallback d, object state) { var newTail = NodePool <ContextPostMessageNode> .Pop(); newTail.Delegate = d; newTail.State = state; m_Fiber.EnqueueInternal(newTail); }
public void OnCompleted(Action continuation) { if (m_Fiber.IsCurrentThread) { continuation(); } else { MessageFiberBase.EnqueueInternal(m_Fiber, continuation); } }
public void UnsafeOnCompleted(Action continuation) { MessageFiberBase.EnqueueInternal(m_Fiber, continuation); }