aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/sync.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-02-26 01:11:54 +0000
committerChristopher Faylor <me@cgf.cx>2000-02-26 01:11:54 +0000
commit8656ee07efbd5d47cde561d4ead67174970f989b (patch)
treef25b7adbe6236e9aec1b76b7eef1c18143b9a0b6 /winsup/cygwin/sync.cc
parent52aaab48f491505380eca98379beccdd8b4f2570 (diff)
downloadnewlib-8656ee07efbd5d47cde561d4ead67174970f989b.zip
newlib-8656ee07efbd5d47cde561d4ead67174970f989b.tar.gz
newlib-8656ee07efbd5d47cde561d4ead67174970f989b.tar.bz2
* exceptions.cc (interruptible): Make a little more structured.
(call_handler): Allow signals to be sent even if signalled thread is stopped. Change order of signal_arrived arming/waiting threads clearing to eliminate a race. (reset_signal_arrived): New helper function. * malloc.cc (malloc_init): Use mutos so that signal handler can keep track of who owns the lock. (__malloc_lock): Ditto. (__malloc_unlock): Ditto. * sync.h (new_muto): Actually use a muto for the "buffer". * Makefile.in: Fix a dependency.
Diffstat (limited to 'winsup/cygwin/sync.cc')
-rw-r--r--winsup/cygwin/sync.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/cygwin/sync.cc b/winsup/cygwin/sync.cc
index 744eb8d..aa3978f 100644
--- a/winsup/cygwin/sync.cc
+++ b/winsup/cygwin/sync.cc
@@ -20,11 +20,12 @@ details. */
#include <errno.h>
#include <stdlib.h>
#include "winsup.h"
+#include "sync.h"
-muto muto_start (0, 0);
+muto NO_COPY muto_start;
/* Constructor */
-muto::muto(int inh, const char *name) : sync (0), visits(0), waiters(-1), tid (0), next (0)
+muto::muto(int inh, const char *name) : sync (0), visits(0), waiters(-1), tid (0), next (NULL)
{
/* Create event which is used in the fallback case when blocking is necessary */
if (!(bruteforce = CreateEvent (inh ? &sec_all_nih : &sec_none_nih, FALSE, FALSE, name)))