Message103154
| Author |
neologix |
| Recipients |
DazWorrall, aconrad, alex, brian.curtin, carljm, coderanger, cool-RR, dabeaz, djc, durin42, eric.araujo, eric.smith, flox, jcea, jhylton, karld, kevinwatters, konryd, larry, loewis, mahmoudimus, movement, neologix, nirai, pitrou, rcohen, rh0dium, salgado, tarek, thouis |
| Date |
2010年04月14日.22:00:03 |
| SpamBayes Score |
6.2894134e-14 |
| Marked as misclassified |
No |
| Message-id |
<1271282407.78.0.43702838104.issue7946@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Some more remarks:
- COND_TIMED_WAIT macro modifies timeout_result when pthread_cond_timewait expires. But timeout_result is not an int pointer, just an int. So it is never updated, and as a result, bfs_check_depleted is never set after a thread has waited for the current running thread to schedule it in vain (in _bfs_timed_wait).
- the scheduling function bfs_find_task returns the first task that has an expired deadline. since an expired deadline probably means that the scheduler hasn't run for a while, it might be worth it to look for the thread with the oldest deadline and serve it first, instead of stopping at the first one
- calls to COND_WAIT/COND_TIMED_WAIT should be run in loops checking for the predicate, since it might be false even after these call return (spurious wakeups, etc):
"In general, whenever a condition wait returns, the thread has to re-evaluate the predicate associated with the condition wait to determine whether it can safely proceed, should wait again, or should declare a timeout. A return from the wait does not imply that the associated predicate is either true or false.
It is thus recommended that a condition wait be enclosed in the equivalent of a "while loop" that checks the predicate." |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2010年04月14日 22:00:08 | neologix | set | recipients:
+ neologix, loewis, jhylton, jcea, pitrou, movement, larry, eric.smith, kevinwatters, tarek, djc, karld, carljm, coderanger, durin42, eric.araujo, nirai, alex, konryd, brian.curtin, flox, DazWorrall, salgado, cool-RR, rh0dium, rcohen, dabeaz, mahmoudimus, aconrad, thouis |
| 2010年04月14日 22:00:07 | neologix | set | messageid: <1271282407.78.0.43702838104.issue7946@psf.upfronthosting.co.za> |
| 2010年04月14日 22:00:05 | neologix | link | issue7946 messages |
| 2010年04月14日 22:00:03 | neologix | create |
|