NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lib/45146: sigwait() cancellation point



>Number:         45146
>Category:       lib
>Synopsis:       sigwait() cancellation point
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    lib-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jul 14 16:30:00 +0000 2011
>Originator:     Onno van der Linden
>Release:        5.99.53 i386
>Organization:
>Environment:
NetBSD sheep 5.99.53 NetBSD 5.99.53 (SHEEP) #0: Thu Jun 16 21:15:01 MEST 2011  
onno@sheep:/usr/src/sys/arch/i386/compile/SHEEP i386

>Description:
pthread_testcancel(3) contains a list of functions that should have a 
cancellation point.

- clock_nanosleep() mentioned in pthread_testcancel(3) should probably be 
clock()
- sem_timedwait() mentioned in pthread_testcancel(3) should probably be 
sem_trywait()
- waitid() mentioned in pthread_testcancel(3) should be ????
- pkg/45131 contains a fix for csup that's wrong. It looks like sigwait() 
(implemented in libc as a wrapper around sigtimedwait()) isn't calling  the 
sigtimedwait() wrapper in pthread_cancelstub.c when using sigwait() in a thread 
(like csup does)
>How-To-Repeat:
See pkg/45131
>Fix:
pthread_testcancel(3) should contain the changes mentioned earlier.
sigwait() cancellation point could be fixed with another entry in 
pthread_cancelstub.c but that doesn't look right to me.



Home | Main Index | Thread Index | Old Index