Example #1
0
        public ResumeResult ResumeScript(Lua script)
        {
            _currThread = script;

            try
            {
                LuaLibraryBase.SetCurrentThread(_currThread);

                var execResult = script.Resume(0);

                _lua.RunScheduledDisposes();
                //not sure how this is going to work out, so do this too
                script.RunScheduledDisposes();

                _currThread = null;
                var result = new ResumeResult();
                if (execResult == 0)
                {
                    // terminated
                    result.Terminated = true;
                }
                else
                {
                    // yielded
                    result.WaitForFrame = FrameAdvanceRequested;
                }

                FrameAdvanceRequested = false;
                return result;
            }
            finally
            {
                LuaLibraryBase.ClearCurrentThread();
            }
        }
Example #2
0
		public ResumeResult ResumeScript(Lua script)
		{
			EventsLibrary.CurrentThread = script;
			_currThread = script;
			var execResult = script.Resume(0);
			_currThread = null;
			var result = new ResumeResult();
			if (execResult == 0)
			{
				// terminated
				result.Terminated = true;
			}
			else
			{
				// yielded
				result.WaitForFrame = FrameAdvanceRequested;
			}

			FrameAdvanceRequested = false;
			return result;
		}