|
From: <sv...@va...> - 2015-08-24 19:10:13
|
Author: tom
Date: Mon Aug 24 20:10:06 2015
New Revision: 15587
Log:
Restore signal masks when recovering from xend related signals
Modified:
trunk/helgrind/tests/safe-pthread.h
Modified: trunk/helgrind/tests/safe-pthread.h
==============================================================================
--- trunk/helgrind/tests/safe-pthread.h (original)
+++ trunk/helgrind/tests/safe-pthread.h Mon Aug 24 20:10:06 2015
@@ -15,7 +15,7 @@
static void sigill_handler( int signum, siginfo_t *siginfo, void *sigcontext ) {
unsigned char *pc = siginfo->si_addr;
assert( pc[0] == 0x0f && pc[1] == 0x01 && pc[2] == 0xd5 );
- longjmp( env, EPERM );
+ siglongjmp( env, EPERM );
}
/*
@@ -25,7 +25,7 @@
* just zero, so we cannot add an assert/sanity check.
*/
static void segv_handler( int signum, siginfo_t *siginfo, void *sigcontext ) {
- longjmp( env, EPERM );
+ siglongjmp( env, EPERM );
}
/*
@@ -54,7 +54,7 @@
sigaction( SIGSEGV, &sa_segv, &oldsa_segv );
- if ( ( r = setjmp( env ) ) == 0 ) {
+ if ( ( r = sigsetjmp( env, 1 ) ) == 0 ) {
r = pthread_rwlock_unlock( rwlock );
} else {
r = 0;
|