Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2012-12-07 21:23:22 +0400
committerChristopher Faylor <me@cgf.cx>2012-12-07 21:23:22 +0400
commit9873ac53d7a52f96784a98098d78b71677e6599c (patch)
tree82ecd90419401778802a54aba63323a3e439d6a1 /winsup/cygwin/cygtls.h
parenta4f34961d862421a174505cb79306d29d73bb9db (diff)
* cygtls.h (_cygtls::get_signal_arrived): Add parameter to make lock/unlock
conditional. * exceptions.cc (_cygtls::interrupt_setup): Don't get a lock when setting signal_arrived since we already have one. * gendef: Add some comments to make it easier to find functions.
Diffstat (limited to 'winsup/cygwin/cygtls.h')
-rw-r--r--winsup/cygwin/cygtls.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/winsup/cygwin/cygtls.h b/winsup/cygwin/cygtls.h
index 4946e59c9..5913ce46f 100644
--- a/winsup/cygwin/cygtls.h
+++ b/winsup/cygwin/cygtls.h
@@ -233,14 +233,16 @@ public:
void lock () __attribute__ ((regparm (1)));
void unlock () __attribute__ ((regparm (1)));
bool locked () __attribute__ ((regparm (1)));
- HANDLE get_signal_arrived ()
+ HANDLE get_signal_arrived (bool wait_for_lock = true)
{
if (!signal_arrived)
{
- lock ();
+ if (wait_for_lock)
+ lock ();
if (!signal_arrived)
signal_arrived = CreateEvent (&sec_none_nih, false, false, NULL);
- unlock ();
+ if (wait_for_lock)
+ unlock ();
}
return signal_arrived;
}