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

start_wait_thread() private method

private start_wait_thread ( ) : void
return void
        void start_wait_thread()
        {
            Report.Debug (DebugFlags.Threads, "Wait thread started: {0}",
                      DebuggerWaitHandle.CurrentThread);

            //
            // NOTE: Dispose() intentionally uses
            //          wait_thread.Abort ();
            //          wait_thread.Join ();
            //
            // The Thread.Abort() is neccessary since we may be blocked in a
            // waitpid().  In this case, the thread abort signal which is sent
            // to the current thread will make the waitpid() abort with an EINTR,
            // so we're not deadlocking here.
            //

            try {
                while (wait_thread_main ())
                    ;
            } catch (ST.ThreadAbortException) {
                Report.Debug (DebugFlags.Threads, "Wait thread abort: {0}",
                          DebuggerWaitHandle.CurrentThread);
                ST.Thread.ResetAbort ();
            } catch (Exception ex) {
                Report.Debug (DebugFlags.Threads, "FUCK: {0}", ex);
                throw;
            }

            Report.Debug (DebugFlags.Threads, "Wait thread exiting: {0}",
                      DebuggerWaitHandle.CurrentThread);
        }