On Wed, 31 Dec 2003, Marc Olzheim wrote: > Hi. > > Is there a reason why in the case that a thread is not done yet, > pthread_join() does not call _thread_kern_sig_undefer() ? > > We have a program where one thread consumes all CPU it can get for > blocks of data. > A status thread is spawned as soon as the main thread starts working on > a new block, printing an 'x % done' message and sleeping for a second in > a loop. When the block is processed, the status thread is > pthread_cancel()d and the main thread does a pthread_join() to wait for > the status thread to exit. Now, when the second block is to be > processed, a new status thread is spawned, but since signals are still > defered and the main thread needs all the cpu it can get, it doesn't get > scheduled in anymore. > > The following fixed the problem in 4-STABLE and it seems to work ok, but > I'm no sure if there was a reason for the omission of the call in that > case...
No, it looks like you found a bug. Committed, thanks! -- Dan Eischen _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"