* cygthread.h (LPVOID_THREAD_START_ROUTINE): Define.

(cygthread::create): Rename from cygthread::cygthread.
(cygthread::cygthread): Define new constructor which accepts
LPVOID_THREAD_START_ROUTINE as the first argument.  Call cygthread::create.
* cygthread.cc (cygthread::create): Rename from cygthread::cygthread.  Use
'arglen' rather than 'n' since 'n' is no longer supplied.
* fhandler_tty.cc (process_input): Define as void/noreturn.
(process_output): Ditto.
(process_ioctl): Ditto.
(fhandler_tty_master::init): Don't "zap_h" cygthreads which are noreturn.  It's
now implied.
This commit is contained in:
Christopher Faylor
2010-07-30 18:04:22 +00:00
parent 5a7e00a866
commit 4db1bd4040
4 changed files with 46 additions and 24 deletions

View File

@@ -46,9 +46,9 @@ struct pipe_reply {
fhandler_tty_master NO_COPY *tty_master;
static DWORD WINAPI process_input (void *); // Input queue thread
static DWORD WINAPI process_output (void *); // Output queue thread
static DWORD WINAPI process_ioctl (void *); // Ioctl requests thread
static void WINAPI process_input (void *) __attribute__((noreturn)); // Input queue thread
static void WINAPI process_output (void *) __attribute__((noreturn)); // Output queue thread
static void WINAPI process_ioctl (void *) __attribute__((noreturn)); // Ioctl requests thread
fhandler_tty_master::fhandler_tty_master ()
: fhandler_pty_master (), console (NULL)
@@ -89,18 +89,9 @@ fhandler_tty_master::init ()
set_close_on_exec (true);
cygthread *h;
h = new cygthread (process_input, 0, cygself, "ttyin");
h->SetThreadPriority (THREAD_PRIORITY_HIGHEST);
h->zap_h ();
h = new cygthread (process_ioctl, 0, cygself, "ttyioctl");
h->SetThreadPriority (THREAD_PRIORITY_HIGHEST);
h->zap_h ();
h = new cygthread (process_output, 0, cygself, "ttyout");
h->SetThreadPriority (THREAD_PRIORITY_HIGHEST);
h->zap_h ();
new cygthread (process_input, 0, cygself, "ttyin");
new cygthread (process_ioctl, 0, cygself, "ttyioctl");
new cygthread (process_output, 0, cygself, "ttyout");
return 0;
}
@@ -225,7 +216,7 @@ fhandler_pty_master::accept_input ()
return ret;
}
static DWORD WINAPI
static void WINAPI
process_input (void *)
{
char rawbuf[INP_BUFFER_SIZE];
@@ -414,7 +405,7 @@ out:
return rc;
}
static DWORD WINAPI
static void WINAPI
process_output (void *)
{
char buf[OUT_BUFFER_SIZE * 2];
@@ -436,7 +427,7 @@ process_output (void *)
/* Process tty ioctl requests */
static DWORD WINAPI
static void WINAPI
process_ioctl (void *)
{
while (1)