Christopher Faylor <cgf@redhat.com>
* exceptions.cc (try_to_debug): Set priority of current thread rather than the main thread. Make busy waiting loop less busy. Restore priority when function returns.
This commit is contained in:
		| @@ -1,3 +1,10 @@ | ||||
| 2003-02-07  Vaclav Haisman  <V.Haisman@sh.cvut.cz> | ||||
| 	    Christopher Faylor  <cgf@redhat.com> | ||||
|  | ||||
| 	* exceptions.cc (try_to_debug): Set priority of current thread rather | ||||
| 	than the main thread.  Make busy waiting loop less busy.  Restore | ||||
| 	priority when function returns. | ||||
|  | ||||
| 2003-02-07  Christopher Faylor  <cgf@redhat.com> | ||||
|  | ||||
| 	* malloc.cc (DEFAULT_MMAP_THRESHOLD): Set high to avoid mmaps. | ||||
|   | ||||
| @@ -343,7 +343,8 @@ try_to_debug (bool waitloop) | ||||
|  | ||||
|   __small_sprintf (strchr (debugger_command, '\0'), " %u", GetCurrentProcessId ()); | ||||
|  | ||||
|   SetThreadPriority (hMainThread, THREAD_PRIORITY_HIGHEST); | ||||
|   LONG prio = GetThreadPriority (GetCurrentThread ()); | ||||
|   SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_HIGHEST); | ||||
|   PROCESS_INFORMATION pi = {NULL, 0, 0, 0}; | ||||
|  | ||||
|   STARTUPINFO si = {0, NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL}; | ||||
| @@ -391,15 +392,17 @@ try_to_debug (bool waitloop) | ||||
|     system_printf ("Failed to start debugger: %E"); | ||||
|   else | ||||
|     { | ||||
|       SetThreadPriority (hMainThread, THREAD_PRIORITY_IDLE); | ||||
|       SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_IDLE); | ||||
|       if (!waitloop) | ||||
| 	return 1; | ||||
|       while (!being_debugged ()) | ||||
| 	/* spin */; | ||||
|       Sleep (4000); | ||||
| 	Sleep (0); | ||||
|       Sleep (2000); | ||||
|       small_printf ("*** continuing from debugger call\n"); | ||||
|     } | ||||
|  | ||||
|   SetThreadPriority (GetCurrentThread (), prio); | ||||
|  | ||||
|   /* FIXME: need to know handles of all running threads to | ||||
|     resume_all_threads_except (current_thread_id); | ||||
|   */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user