threads/94176: KSE: sigwait doesn't recieve SIGWINCH sent by
pthread_kill() or kill -WINCH
eugeny gladkih
john at drweb.com
Thu Apr 27 19:28:57 UTC 2006
>>>>> "DE" == Daniel Eischen <deischen at freebsd.org> writes:
DE> Not true. I just tested it on Solaris 9. If you don't
DE> install a signal handler for SIGWINCH, it is ignored.
DE> I also compiled my test program on Solaris with
DE> -D_POSIX_PTHREAD_SEMANTICS and linked with -lpthread.
DE> http://people.freebsd.org/~deischen/kse/test_waitone.c
404 code's been got well ;) but I've lost the interest,
anyway. I'm able to use a preprocessor. let it be, the simplest
way don't ask why, just write the comment for wonder-struck
readers. they'll be funny a little ;)
#if defined( __FreeBSD__ )
static void freebsd_shit() {
}
static setup_freebsd_shit() {
signal( freebsd_shit, SIGIO );
signal( freebsd_shit, SIGWINCH );
signal( freebsd_shit, SIGUSR1 );
signal( freebsd_shit, SIGUSR2 );
signal( freebsd_shit, SIGHUP );
signal( freebsd_shit, SIGTERM );
signal( freebsd_shit, SIGQUIT );
signal( freebsd_shit, SIGINT );
signal( freebsd_shit, SIGPIPE );
#if defined( SIGCHLD ) && defined( SIGCLD )
signal( freebsd_shit, SIGCHLD );
#if SIGCLD != SIGCHLD
signal( freebsd_shit, SIGCLD );
#endif
#elif defined( SIGCHLD )
signal( freebsd_shit, SIGCHLD );
#elif defined( SIGCLD )
signal( freebsd_shit, SIGCLD );
#endif
}
#endif
...
void signals_t::handler( void* ) {
LOG( DEBUG, ("[Signal] Handler started") );
#if defined( __FreeBSD__ )
setup_freebsd_shit();
#endif
...
}
--
Yours sincerely, Eugeny.
Doctor Web, Ltd. http://www.drweb.com
More information about the freebsd-threads
mailing list