Mono.Debugger.Backend.ThreadManager.check_pending_events C# (CSharp) Method

check_pending_events() private method

private check_pending_events ( ) : void
return void
        void check_pending_events()
        {
            SingleSteppingEngine[] list = new SingleSteppingEngine [pending_events.Count];
            pending_events.Keys.CopyTo (list, 0);

            for (int i = 0; i < list.Length; i++) {
                SingleSteppingEngine engine = list [i];
                if (engine.Process.HasThreadLock)
                    continue;

                Inferior.ChildEvent cevent = (Inferior.ChildEvent) pending_events [engine];
                pending_events.Remove (engine);

                try {
                    Report.Debug (DebugFlags.Wait,
                              "ThreadManager {0} process pending event: {1} {2}",
                              DebuggerWaitHandle.CurrentThread, engine, cevent);
                    engine.ReleaseThreadLock (cevent);
                    Report.Debug (DebugFlags.Wait,
                              "ThreadManager {0} process pending event done: {1}",
                              DebuggerWaitHandle.CurrentThread, engine);
                } catch (ST.ThreadAbortException) {
                    ;
                } catch (Exception e) {
                    Report.Debug (DebugFlags.Wait,
                          "ThreadManager caught exception: {0}", e);
                }
            }
        }