看板 FB_hackers 關於我們 聯絡資訊
Hello, =20 When a thread cannot get a mutex (default mutex) and needs to be blocked, is it really put to sleep? From looking at the code it appears that it is inhibited (TD_SET_LOCK) but isn't really put to sleep. =20 1. Why isn't it put to sleep - why can't it be treated the same? 2. The eventual question I am trying to answer is the difference between setrunnable() and setrunqueue() - this one simply finds a slot in the ksegrp and a runq to add the KSE/td. But setrunnable() also checks to see if the process is in memory (PS_INMEM) before calling sched_wakeup which eventually calls setrunqueue()? Why doesn't setrunqueue have to worry about the possibility that the process may have been swapped out while it was waiting to become runnable? =20 Thanks Ravi =20 _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"