* 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.
This commit is contained in:
@@ -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)))
|
||||
|
Reference in New Issue
Block a user