internal ThreadManager(Debugger debugger) { this.debugger = debugger; thread_hash = Hashtable.Synchronized(new Hashtable()); engine_hash = Hashtable.Synchronized(new Hashtable()); processes = ArrayList.Synchronized(new ArrayList()); pending_events = Hashtable.Synchronized(new Hashtable()); last_pending_sigstop = DateTime.Now; pending_sigstops = new Dictionary <int, DateTime> (); address_domain = AddressDomain.Global; wait_event = new ST.AutoResetEvent(false); engine_event = new ST.ManualResetEvent(true); ready_event = new ST.ManualResetEvent(false); event_queue = new DebuggerEventQueue("event_queue"); event_queue.DebugFlags = DebugFlags.Wait; mono_debugger_server_global_init(); wait_thread = new ST.Thread(new ST.ThreadStart(start_wait_thread)); wait_thread.IsBackground = true; wait_thread.Start(); inferior_thread = new ST.Thread(new ST.ThreadStart(start_inferior)); inferior_thread.IsBackground = true; inferior_thread.Start(); ready_event.WaitOne(); }
internal ThreadManager(Debugger debugger) { this.debugger = debugger; thread_hash = Hashtable.Synchronized (new Hashtable ()); engine_hash = Hashtable.Synchronized (new Hashtable ()); processes = ArrayList.Synchronized (new ArrayList ()); pending_events = Hashtable.Synchronized (new Hashtable ()); last_pending_sigstop = DateTime.Now; pending_sigstops = new Dictionary<int,DateTime> (); address_domain = AddressDomain.Global; wait_event = new ST.AutoResetEvent (false); engine_event = new ST.ManualResetEvent (true); ready_event = new ST.ManualResetEvent (false); event_queue = new DebuggerEventQueue ("event_queue"); event_queue.DebugFlags = DebugFlags.Wait; mono_debugger_server_global_init (); wait_thread = new ST.Thread (new ST.ThreadStart (start_wait_thread)); wait_thread.IsBackground = true; wait_thread.Start (); inferior_thread = new ST.Thread (new ST.ThreadStart (start_inferior)); inferior_thread.IsBackground = true; inferior_thread.Start (); ready_event.WaitOne (); }