From b6bd703781fdbe466e5a4d41e16743a642e7c0d3 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 1 Aug 2002 16:20:31 +0000 Subject: * Makefile.in (DLL_OFILES): Add cygthread.o. * dcrt0.cc (dll_crt0_1): Eliminate various thread initialization functions in favor of new cygthread class. * debug.cc: Remove thread manipulation functions. * debug.h: Ditto. * external.cc (cygwin_internal): Use cygthread method for determining thread name. Remove capability for setting thread name. * fhandler_console.cc (fhandler_console::read): Use cygthread method rather than iscygthread function. * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Use cygthread methods to create threads. (fhandler_tty_common::__acquire_output_mutex): Use cygthread method to retrieve thread name. * select.cc (pipeinf): Use cygthread pointer rather than handle. (start_thread_pipe): Ditto. (pipe_cleanup): Ditto. (serialinf): Ditto. (start_thread_serial): Ditto. (serial_cleanup): Ditto. (socketinf): Ditto. (start_thread_socket): Ditto. (socket_cleanup): Ditto. * sigproc.cc (hwait_sig): Ditto. (hwait_subproc): Ditto. (proc_terminate): Ditto. (sigproc_terminate): Ditto. (sigproc_init): Initialize cygthread hwait_sig pointer. (subproc_init): Initialize cygthread hwait_subproc pointer. (wait_sig): Rely on cygthread HANDLE operator. * strace.cc (strace::vsprntf): Use cygthread::name rather than threadname. * window.cc (gethwnd): Use cygthread method to initialize thread. --- winsup/cygwin/cygthread.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 winsup/cygwin/cygthread.h (limited to 'winsup/cygwin/cygthread.h') diff --git a/winsup/cygwin/cygthread.h b/winsup/cygwin/cygthread.h new file mode 100644 index 000000000..67e9d591e --- /dev/null +++ b/winsup/cygwin/cygthread.h @@ -0,0 +1,30 @@ +/* cygthread.h + + Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. */ + +class cygthread +{ + DWORD avail; + DWORD id; + HANDLE h; + HANDLE ev; + const char *__name; + LPTHREAD_START_ROUTINE func; + VOID *arg; + static DWORD main_thread_id; + static DWORD WINAPI runner (VOID *); + static DWORD WINAPI stub (VOID *); + public: + static const char * name (DWORD = 0); + cygthread (LPTHREAD_START_ROUTINE, LPVOID, const char *); + cygthread () {}; + static void init (); + void detach (); + operator HANDLE (); + static bool is (); + void * operator new (size_t); +}; -- cgit v1.2.3