Inheritance: OperationCommandResult
Beispiel #1
0
        void ResumeUserThreads(ThreadingModel model, SingleSteppingEngine caller)
        {
            Report.Debug(DebugFlags.Threads,
                         "Resuming user threads: {0}", caller);

            foreach (SingleSteppingEngine engine in thread_hash.Values)
            {
                if (engine == caller)
                {
                    continue;
                }
                if ((engine.Thread.ThreadFlags & Thread.Flags.AutoRun) == 0)
                {
                    continue;
                }
                if (((engine.Thread.ThreadFlags & Thread.Flags.Immutable) != 0) &&
                    ((model & ThreadingModel.StopImmutableThreads) == 0))
                {
                    continue;
                }
                if (((engine.Thread.ThreadFlags & Thread.Flags.Daemon) != 0) &&
                    ((model & ThreadingModel.StopDaemonThreads) == 0))
                {
                    continue;
                }

                CommandResult result;
                if (current_operation != null)
                {
                    result = current_operation;
                }
                else
                {
                    result = new ThreadCommandResult(engine.Thread);
                }

                engine.ResumeUserThread(result);
            }

            Report.Debug(DebugFlags.Threads,
                         "Resumed user threads: {0}", caller);
        }
Beispiel #2
0
        void ResumeUserThreads(ThreadingModel model, SingleSteppingEngine caller)
        {
            Report.Debug (DebugFlags.Threads,
                      "Resuming user threads: {0}", caller);

            foreach (SingleSteppingEngine engine in thread_hash.Values) {
                if (engine == caller)
                    continue;
                if ((engine.Thread.ThreadFlags & Thread.Flags.AutoRun) == 0)
                    continue;
                if (((engine.Thread.ThreadFlags & Thread.Flags.Immutable) != 0) &&
                    ((model & ThreadingModel.StopImmutableThreads) == 0))
                    continue;
                if (((engine.Thread.ThreadFlags & Thread.Flags.Daemon) != 0) &&
                    ((model & ThreadingModel.StopDaemonThreads) == 0))
                    continue;

                CommandResult result;
                if (current_operation != null)
                    result = current_operation;
                else
                    result = new ThreadCommandResult (engine.Thread);

                engine.ResumeUserThread (result);
            }

            Report.Debug (DebugFlags.Threads,
                      "Resumed user threads: {0}", caller);
        }