int ret;
/* Disable signals */
- ret = sigemptyset(&newmask);
+ ret = sigfillset(&newmask);
assert(!ret);
- ret = pthread_sigmask(SIG_SETMASK, &newmask, oldmask);
+ ret = pthread_sigmask(SIG_BLOCK, &newmask, oldmask);
assert(!ret);
ret = pthread_mutex_lock(&compat_mutex);
assert(!ret);
* generate an illegal instruction. Cannot catch this with
* linker tricks when optimizations are disabled.
*/
+ result = 0;
__asm__ __volatile__("ud2");
}
mutex_lock_signal_restore(&compat_mutex, &mask);
- return _new;
+ return result;
}
unsigned long _compat_uatomic_xchg(void *addr, unsigned long _new, int len)
* generate an illegal instruction. Cannot catch this with
* linker tricks when optimizations are disabled.
*/
+ retval = 0; /* silence gcc warnings */
__asm__ __volatile__("ud2");
}
mutex_lock_signal_restore(&compat_mutex, &mask);
* generate an illegal instruction. Cannot catch this with
* linker tricks when optimizations are disabled.
*/
+ retval = 0; /* silence gcc warnings */
__asm__ __volatile__("ud2");
}
mutex_lock_signal_restore(&compat_mutex, &mask);
* generate an illegal instruction. Cannot catch this with
* linker tricks when optimizations are disabled.
*/
+ result = 0; /* silence gcc warnings */
__asm__ __volatile__("ud2");
}
mutex_lock_signal_restore(&compat_mutex, &mask);