From c4ec64d76b9650b92d4c9f566fbac788c2d3fd46 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 9 Oct 2002 05:55:40 +0000 Subject: * cygthread.cc (cygthread::stub): Don't create an event for "cygself" threads. Assume that they exit via an ExitThread call. * cygthread.h (cygthread::SetThreadPriority): New function. (cygthread::zap_h): New function. * dcrt0.cc (do_exit): Move cygthread::terminate earlier and establish exit_state guard. * fhandler.h (fhandler_tty_master::output_thread): Delete. * fhandler_tty.cc (fhandler_tty_master::init): Set priority for threads via method. Zap handles when done. Don't treat process_output specially. (process_output): Call ExitThread directly. (fhandler_tty_master::fixup_after_fork): Don't worry about output_thread. (fhandler_tty_master::fixup_after_exec): Ditto. * sigproc.cc (proc_terminate): Don't detach from hwait_subproc. Just let it exit. (sigproc_init): Close thread handle after initialization. (wait_sig): Use GetCurrentThread() as SetThreadPriority call rather than *event* handle. Call ExitThread directly on termination. (wait_subproc): Call ExitThread directly on termination. * tty.cc (tty_list::terminate): Don't attempt t detach from output_thread. --- winsup/cygwin/cygthread.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/cygthread.cc') diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc index c6e5d173b..74b35f454 100644 --- a/winsup/cygwin/cygthread.cc +++ b/winsup/cygwin/cygthread.cc @@ -53,7 +53,10 @@ cygthread::stub (VOID *arg) init_exceptions (&except_entry); cygthread *info = (cygthread *) arg; - info->ev = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL); + if (info->arg == cygself) + info->ev = NULL; + else + info->ev = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL); while (1) { if (!info->func) -- cgit v1.2.3