diff options
author | Christopher Faylor <me@cgf.cx> | 2012-12-21 22:52:00 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2012-12-21 22:52:00 +0400 |
commit | 614aff88a0cf6c0ec5ec5ba063b003549dedc9db (patch) | |
tree | f750a571791d6d564bc7a5a252e2f2b78f22ec74 /winsup/cygwin/sync.h | |
parent | dfbb1d0383420c383b8f0bc3149d4b76fa51b398 (diff) |
* DevNotes: Add entry cgf-000017.
* _cygtls.cc (_cygtls::call2): Use new exit_thread function in place of
ExitThread.
* miscfuncs.cc (thread_wrapper): Ditto.
* thread.cc (pthread::exit): Ditto.
(pthread_mutex::unlock): Set tid to NULL rather than 0.
(pthread_spinlock::unlock): Ditto.
* pinfo.cc (commune_process): Actually call lock_process constructor.
* sigproc.cc (exit_thread): New function.
(wait_sig): Handle __SIGTHREADEXIT case. Don't just block rather than
returning from this function.
* sigproc.h (__SIGTHREADEXIT): New enum.
(exit_thread): Declare.
* sync.cc (muto::release): Accept a tls command-line argument.
* sync.h (muto::release): Accept a tls command-line parameter. Default to
&_my_tls.
Diffstat (limited to 'winsup/cygwin/sync.h')
-rw-r--r-- | winsup/cygwin/sync.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/winsup/cygwin/sync.h b/winsup/cygwin/sync.h index c9c5fb595..d424d39ab 100644 --- a/winsup/cygwin/sync.h +++ b/winsup/cygwin/sync.h @@ -33,7 +33,7 @@ public: ~muto () #endif int acquire (DWORD ms = INFINITE) __attribute__ ((regparm (2))); /* Acquire the lock. */ - int release () __attribute__ ((regparm (1))); /* Release the lock. */ + int release (_cygtls * = &_my_tls) __attribute__ ((regparm (2))); /* Release the lock. */ bool acquired () __attribute__ ((regparm (1))); void upforgrabs () {tls = this;} // just set to an invalid address @@ -60,6 +60,7 @@ public: if (!skip_unlock) locker.release (); } + static void force_release (_cygtls *tid) {locker.release (tid);} friend class dtable; friend class fhandler_fifo; }; |