Gerhard Jaeger wrote:
> Hi Mattias,
>
>
> Of course you are right. I'm really not sure how to proceed. I think I need
> some time to think about that stuff...
>
> Ciao,
> Gerhard
>
Something like this, maybe....
Mattias
void sanei_thread_allow_cancel () {
#ifdef USE_PTHREAD
#if defined (__APPLE__) && defined (__MACH__)
sigset_t sigset;
sigemptyset ( &sigset );
sigaddset ( &sigset, SIGUSR2 );
sigprocmask ( SIG_UNBLOCK, &sigset, 0 );
#else
int old;
pthread_setcancelstate ( PTHREAD_CANCEL_ENABLE, &old );
#endif
#else
sigset_t sigset;
sigemptyset ( &sigset );
sigaddset ( &sigset, SIGTERM );
sigprocmask ( SIG_UNBLOCK, &sigset, 0 );
#endif
}
void sanei_thread_disallow_cancel () {
#ifdef USE_PTHREAD
#if defined (__APPLE__) && defined (__MACH__)
sigset_t sigset;
sigemptyset ( &sigset );
sigaddset ( &sigset, SIGUSR2 );
sigprocmask ( SIG_BLOCK, &sigset, 0 );
#else
int old;
pthread_setcancelstate ( PTHREAD_CANCEL_DISABLE, &old );
#endif
#else
sigset_t sigset;
sigemptyset ( &sigset );
sigaddset ( &sigset, SIGTERM );
sigprocmask ( SIG_BLOCK, &sigset, 0 );
#endif
}