Proper algorithm for return values from sleep

John Baldwin jhb at FreeBSD.org
Fri Feb 27 11:54:16 PST 2004


As part of my sleep queue work, I found that msleep() and the cv_wait() 
functions have differing semantics for return vales.  It appears that at 
least some of the early changes KSE made to msleep() were ported to cv's but 
not later cleanups.  Specifically, in msleep(), if we are awakened while 
checking for signals but we didn't find a signal, we prefer a timeout-related 
return value over a signal-related value.  Secondly, cv's don't really handle 
td_intrval very well at all.  It has one hard-coded override for the P_EXIT 
case but that's it.

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-threads mailing list