summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler.h
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-02-06 05:04:34 +0000
committerChristopher Faylor <me@cgf.cx>2005-02-06 05:04:34 +0000
commit85a798d6e755f4db4c04d92ecde1e5409a62cd59 (patch)
treef1b1eda0a4f9cdc38c11cd774e5db3e42f1de9cf /winsup/cygwin/fhandler.h
parent901b1fb9852e5ccaa66ad82c539447394727f33c (diff)
downloadcygnal-85a798d6e755f4db4c04d92ecde1e5409a62cd59.tar.gz
cygnal-85a798d6e755f4db4c04d92ecde1e5409a62cd59.tar.bz2
cygnal-85a798d6e755f4db4c04d92ecde1e5409a62cd59.zip
* cygthread.h (cygthread::terminate_thread): Reflect return value.
* cygthread.cc (cygthread::detach): Be more careful about ensuring that sigwait is properly waited for to avoid later missynchronization. (cygthread::terminate_thread): Return true if thread was actually terminated and all handles were closed. * fhandler_base.cc (fhandler_base::raw_read): Use signal_read_state rather than raw calls to win32 api. (fhandler_base::read): Ditto. * fhandler.h (fhandler_pipe::fixup_after_exec): Use method to create read_state signalling. (fhandler_pipe::create): Ditto. * Makefile.in: Make some more files -fomit-frame-pointer.
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r--winsup/cygwin/fhandler.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index f710356bf..2f2f01706 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -193,6 +193,15 @@ class fhandler_base
virtual void fixup_before_fork_exec (DWORD) {}
virtual void fixup_after_fork (HANDLE);
virtual void fixup_after_exec () {}
+ void create_read_state (LONG n)
+ {
+ read_state = CreateSemaphore (&sec_none_nih, 0, n, NULL);
+ }
+
+ void signal_read_state (LONG n)
+ {
+ (void) ReleaseSemaphore (read_state, n, NULL);
+ }
void set_fs_flags (DWORD flags) { fs_flags = flags; }
bool get_fs_flags (DWORD flagval = UINT32_MAX)