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