protected IEnumerator <object> WaitUntilResult()
        {
            do
            {
#if IS_UNITY
                yield return(new WaitForFixedUpdate());
#else
                object o;
                if (HiveMPPromiseSchedulerSettings.CoroutineWaitObjectFactory == null)
                {
                    o = new object();
                }
                else
                {
                    o = HiveMPPromiseSchedulerSettings.CoroutineWaitObjectFactory();
                }
                if (o == null)
                {
                    o = new object();
                }
                yield return(o);
#endif
            } while (!_hasT && _ex == null);

            if (_hasT)
            {
                _resolve(_t);
            }
            else
            {
                _reject(_ex);
            }
        }
        protected static void StartCoroutine(IEnumerator e)
        {
#if IS_UNITY
            HiveMPSDK.GetUnityMonoBehaviour().StartCoroutine(e);
#else
            if (HiveMPPromiseSchedulerSettings.ScheduleCoroutine == null)
            {
                throw new System.InvalidOperationException("Attempted to schedule a coroutine for HiveMP, but HiveMPPromiseSchedulerSettings.ScheduleCoroutine was null!");
            }

            HiveMPPromiseSchedulerSettings.ScheduleCoroutine(e);
#endif
        }