Пример #1
0
        /**
         * @brief A script instance was just removed from the Start or Yield Queue.
         *        So run it for a little bit then stick in whatever queue it should go in.
         */
        private void RunInstance(XMRInstance inst, int tid)
        {
            m_LastRanAt       = DateTime.UtcNow;
            m_ScriptExecTime -= (long)(m_LastRanAt - DateTime.MinValue).TotalMilliseconds;
            inst.m_IState     = XMRInstState.RUNNING;

            lock (m_WakeUpLock)
                m_RunningInstances[tid] = inst;

            XMRInstState newIState = inst.RunOne();

            lock (m_WakeUpLock)
                m_RunningInstances[tid] = null;

            HandleNewIState(inst, newIState);
            m_ScriptExecTime += (long)(DateTime.UtcNow - DateTime.MinValue).TotalMilliseconds;
        }