Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Apr 2006 23:28:52 +0400
From:      eugeny gladkih <john@drweb.com>
To:        Daniel Eischen <deischen@freebsd.org>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: threads/94176: KSE: sigwait doesn't recieve SIGWINCH sent by pthread_kill() or kill -WINCH
Message-ID:  <8764kurf63.fsf@amd64.home>
In-Reply-To: <Pine.GSO.4.64.0604271450360.25542@sea.ntplx.net> (Daniel Eischen's message of "Thu, 27 Apr 2006 14:57:31 -0400 (EDT)")
References:  <200604271700.k3RH0Yp2063767@freefall.freebsd.org> <Pine.GSO.4.64.0604271424400.25542@sea.ntplx.net> <8764kusvmh.fsf@amd64.home> <Pine.GSO.4.64.0604271450360.25542@sea.ntplx.net>

next in thread | previous in thread | raw e-mail | index | archive | help
>>>>> "DE" == Daniel Eischen <deischen@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8764kurf63.fsf>