please can you give me an example of mask to SET BLOCK ou UNBLOCK in both threads (main and run) in order to make this sample code working ?
thanks a lot. On Thu, 8 Jan 2004, Daniel Eischen wrote: > Date: Thu, 8 Jan 2004 08:48:34 -0500 (EST) > From: Daniel Eischen <[EMAIL PROTECTED]> > To: rmkml <[EMAIL PROTECTED]> > Cc: [EMAIL PROTECTED] > Subject: Re: problem with signal handling and threads (fbsd49R) > > On Thu, 8 Jan 2004, rmkml wrote: > > > Hi, > > > > I've got a problem with signal handling and threads. > > I've reproduced the problem in a simple code. > > Description of program: > > install a signal handler SIGINT. > > create a thread that do nothing except waiting. > > main thread use poll to wait forever [ poll(,,-1) ]. > > user has too crtl-C to interrupt poll > > after 5 ctrl-C, loop is over and main-thread signals sub-thread to > > stops. > > > > In fact, it appears not to work correctly: after one ctrl-C, user has to > > press ctrl-C twice before poll returns with errno=EINTR !! > > If the thread creation is removed from code, the expected behavior is > > seen : the program works fine. > > > > If I replace the poll by sigsuspend() the program works fine too. > > > > Is there something wrong with poll function ? > > No, it's your program. Why do you think the signal will > only be delivered to the main thread and not the other > (run) thread? If you want a particular thread to receive > a signal, then you had better set up signal masks for > all threads appropriately (or use sigwait()). > > > > _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"