void Internal.ITreeHandleable.MakeReady(Internal.IValueContainer valueContainer,
                                         ref ValueLinkedQueue <Internal.ITreeHandleable> handleQueue,
                                         ref ValueLinkedQueue <Internal.ITreeHandleable> cancelQueue)
 {
     valueContainer.Retain();
     _value = valueContainer;
     _state = valueContainer.GetState();
 }
예제 #2
0
 void ITreeHandleable.MakeReady(IValueContainer valueContainer, ref ValueLinkedQueue <ITreeHandleable> handleQueue, ref ValueLinkedQueue <ITreeHandleable> cancelQueue)
 {
     if (valueContainer.GetState() == State.Canceled)
     {
         valueContainer.Retain();
         _valueContainer = valueContainer;
         cancelQueue.Push(this);
     }
     else
     {
         Dispose();
     }
 }
 void ITreeHandleable.MakeReady(IValueContainer valueContainer, ref ValueLinkedQueue <ITreeHandleable> handleQueue, ref ValueLinkedQueue <ITreeHandleable> cancelQueue)
 {
     throw new System.InvalidOperationException();
 }
예제 #4
0
 static partial void AddToCancelQueueBack(ref ValueLinkedQueue <Internal.ITreeHandleable> cancelations);
예제 #5
0
 void ITreeHandleable.MakeReady(Promise owner, IValueContainer valueContainer, ref ValueLinkedQueue <ITreeHandleable> handleQueue)
 {
     if (valueContainer.GetState() == Promise.State.Canceled)
     {
         canceler.SetValue(valueContainer);
         handleQueue.Push(this);
     }
     else
     {
         Dispose();
     }
 }
예제 #6
0
 void Internal.ITreeHandleable.MakeReady(Promise owner, Internal.IValueContainer valueContainer, ref ValueLinkedQueue <Internal.ITreeHandleable> handleQueue)
 {
     throw new System.InvalidOperationException();
 }
예제 #7
0
 public static void AddToHandleQueueBack(ref ValueLinkedQueue <ITreeHandleable> handleables)
 {
     _handleQueue.EnqueueAndClear(ref handleables);
 }
예제 #8
0
 public static void AddToHandleQueueFront(ref ValueLinkedQueue <ITreeHandleable> handleables)
 {
     _handleQueue.PushAndClear(ref handleables);
 }