[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] Locking in pm_thread_unblock
Welchen Sinn exakt hat die folgende Konstruktion (aus pm_thread_unblock in
kernel2) in Bezug auf das Locking? Sollte da das lock() in dem if nicht immer
blockieren, weil ja genau dasselbe schon davor gelockt wurde?
lock(&thread->lock);
// Der Thread wird nur entsperrt, wenn er auch wirklich blockiert ist
if (thread->status == PM_STATUS_BLOCKED) {
lock(&thread->lock);
unlock(&thread->lock);
return TRUE;
}
unlock(&thread->lock);
Andererseits habe ich ihn an dieser Stelle auch noch nicht hängen sehen.
Vielleicht verstehe ich grad nur nicht, wozu das gut ist.
Kevin