Rework the internal lock interface

With this patch, the 'futex' syscall gets used for blocking and unblocking
of threads in the Linux-specific lock implementation.

The 'Native_thread_id' type, which was previously used in the
lock-internal 'Applicant' class to identify a thread to be woken up,
was not suitable anymore for implementing this change. With this patch,
the 'Thread_base*' type gets used instead, which also has the positive
effect of making the public 'cancelable_lock.h' header file
platform-independent.

Fixes #646.
This commit is contained in:
Christian Prochaska
2013-02-25 21:18:26 +01:00
committed by Norman Feske
parent 7fef0ba931
commit a99193ad90
36 changed files with 496 additions and 330 deletions

View File

@ -147,7 +147,7 @@ namespace Genode {
/**
* Return badge for faulting thread
*/
unsigned long badge() const { return _last.tid; }
unsigned long badge() const { return _last; }
/**
* Return true if page fault was a write fault