diff options
author | Christopher Faylor <me@cgf.cx> | 2000-09-07 01:18:37 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-09-07 01:18:37 +0000 |
commit | c1644acb233ed749b28b4139604ab134cf1cd34c (patch) | |
tree | 3fd9f31c5c3d2f81996fd6ce65b627959e8fe015 /winsup/cygwin/sync.cc | |
parent | 8dec7b03798a822337c86dbbea2f764d165cd61d (diff) | |
download | newlib-c1644acb233ed749b28b4139604ab134cf1cd34c.zip newlib-c1644acb233ed749b28b4139604ab134cf1cd34c.tar.gz newlib-c1644acb233ed749b28b4139604ab134cf1cd34c.tar.bz2 |
* exceptions.cc (signal_exit): Reset all mutos owned by the main thread.
* fhandler.h: Define *_output_mutex macros for serializing tty output.
(fhandler_termios): Remove restart_output_event. Define dummy output mutex
methods.
(fhandler_pty_master): Remove unneeded fixup_after_fork method.
* fhandler_termios.cc (fhandler_termios::line_edit): Acquire output_mutex when
CTRL-S is hit. Release it on CTRL-Q.
* fhandler_tty.cc (fhandler_pty_master::process_slave_output): Remove
inappropriate OutputStopped test here. Just use the output mutex.
(fhandler_pty_master::fhandler_pty_master): Remove obsolete reference to
restart_output_event.
(fhandler_tty_common::close): Ditto.
(fhandler_pty_master::set_close_on_exec): Ditto.
(fhandler_pty_master::fixup_after_fork): Delete.
* tty.cc (tty::common_init): Ditto.
* sync.cc (muto::reset): New method.
* sync.h: Declare above method.
Diffstat (limited to 'winsup/cygwin/sync.cc')
-rw-r--r-- | winsup/cygwin/sync.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/winsup/cygwin/sync.cc b/winsup/cygwin/sync.cc index f5c2159..9f44ff2 100644 --- a/winsup/cygwin/sync.cc +++ b/winsup/cygwin/sync.cc @@ -125,3 +125,16 @@ muto::release () return 1; /* success. */ } + +/* Call only when we're exiting. This is not thread safe. */ +void +muto::reset () +{ + visits = sync = tid = 0; + InterlockedExchange (&waiters, -1); + if (bruteforce) + { + CloseHandle (bruteforce); + bruteforce = CreateEvent (&sec_none_nih, FALSE, FALSE, name); + } +} |