From 4a72430d821b96add23846980d07f5a01059029d Mon Sep 17 00:00:00 2001 From: rpj Date: Sat, 2 Feb 2002 23:15:28 +0000 Subject: * cancel.c: Rearranged some code and introduced checks to disable cancelation at the start of a thread's cancelation run to prevent double cancelation. The main problem arises if a thread is canceling and then receives a subsequent async cancel request. * private.c: Likewise. * condvar.c: Place pragmas around cleanup_push/pop to turn off inline optimisation (/Obn where n>0 - MSVC only). Various optimisation switches in MSVC turn this on, which interferes with the way that cleanup handlers are run in C++ EH and SEH code. Application code compiled with inline optimisation must also wrap cleanup_push/pop blocks with the pragmas, e.g. #pragma inline_depth(0) pthread_cleanup_push(...) ... pthread_cleanup_pop(...) #pragma inline_depth(8) * rwlock.c: Likewise. * mutex.c: Remove attempts to inline some functions. * signal.c: Modify misleading comment. tests/ * mutex8: New test. * mutex8n: New test. * mutex8e: New test. * mutex8r: New test. * cancel6a: New test. * cancel6d: New test. * cleanup0.c: Add pragmas for inline optimisation control. * cleanup1.c: Add pragmas for inline optimisation control. * cleanup2.c: Add pragmas for inline optimisation control. * cleanup3.c: Add pragmas for inline optimisation control. * condvar7.c: Add pragmas for inline optimisation control. * condvar8.c: Add pragmas for inline optimisation control. * condvar9.c: Add pragmas for inline optimisation control. --- signal.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'signal.c') diff --git a/signal.c b/signal.c index e8c534f..ba85674 100644 --- a/signal.c +++ b/signal.c @@ -27,8 +27,8 @@ */ /* - * Strategy for implementing pthread_kill() - * ======================================== + * Possible future strategy for implementing pthread_kill() + * ======================================================== * * Win32 does not implement signals. * Signals are simply software interrupts. @@ -124,10 +124,10 @@ pthread_sigmask(int how, sigset_t const *set, sigset_t *oset) if (set != NULL) { unsigned int i; - + /* FIXME: this code assumes that sigmask is an even multiple of - the size of a long integer. */ - + the size of a long integer. */ + unsigned long *src = (unsigned long const *) set; unsigned long *dest = (unsigned long *) &(thread->sigmask); @@ -167,7 +167,7 @@ int sigwait(const sigset_t *set, } int sigaction(int signum, - const struct sigaction *act, + const struct sigaction *act, struct sigaction *oldact) { } -- cgit v1.2.3