Mono.Debugger.Backend.SingleSteppingEngine.SuspendUserThread C# (CSharp) Method

SuspendUserThread() private method

private SuspendUserThread ( ) : void
return void
        internal override void SuspendUserThread()
        {
            if (!ThreadManager.InBackgroundThread)
                throw new InternalError ();
            if (HasThreadLock)
                throw new InternalError ("Recursive thread lock");

            Report.Debug (DebugFlags.Threads,
                      "{0} suspend user thread: {1} {2}",
                      this, engine_stopped, current_operation);

            if (engine_stopped)
                return;

            Inferior.ChildEvent stop_event;
            bool stopped = inferior.Stop (out stop_event);

            stop_requested = true;

            if (stop_event != null) {
                if (ProcessEvent (stop_event))
                    stop_event = null;
            } else {
                OperationInterrupted ();
            }

            if (stop_event != null)
                thread_lock = new ThreadLockData (stopped, stop_event, false);

            Report.Debug (DebugFlags.Threads,
                      "{0} suspend user thread done: {1} {2} {3}",
                      this, stopped, stop_event, current_operation);
        }
SingleSteppingEngine