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); }
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); }