view Implab/PromiseAwaiter.cs @ 215:fe5101083150 v2

Fixed InteractiveListener to support OLE and clipboard. Safe.Dispose methods made more convinent
author cin
date Fri, 21 Apr 2017 14:27:17 +0300
parents ec91a6dfa5b3
children cbe10ac0731e
line wrap: on
line source

using System;
using System.Runtime.CompilerServices;

namespace Implab {
    public struct PromiseAwaiter : INotifyCompletion {
        readonly IPromise m_promise;

        public PromiseAwaiter(IPromise promise) {
            m_promise = promise;
        }

        public void OnCompleted (Action continuation) {
            if (m_promise != null)
                m_promise.On(continuation, PromiseEventType.All);
        }

        public void GetResult() {
            m_promise.Join();
        }

        public bool IsCompleted {
            get {
                return m_promise.IsResolved;
            }
        }
    }
}