On Feb 22, 2012, at 4:22 PM, Desai, Kashyap wrote:
> Just curious to know, What is a reason that thread can do blocking sleep but 
> can't do unbounded sleep ?

When you block, the scheduler can run other threads and only needs to wake up 
and run your thread after the blocking condition is completed.

However, you don't want to busy-wait in a spin lock/mutex for any lengthy 
period of time.  If your thread was allowed to do an unbounded sleep, 
especially in a fast interrupt handler context, what's going to wake it up?  An 
NMI like the reset button [1]?  :-)

Regards,
-- 
-Chuck

[1]: Well, you could also call STI to permit clock interrupts or something else 
to fire an interrupt, but then your interrupt handler needs to be re-entrant.  
(And watch out for multiple nested interrupts blowing out the available stack 
space....)

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[email protected]"

Reply via email to