Added a LockWithTimeout() method to the RecursiveLock class.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6353 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2004-01-27 11:11:18 +00:00
parent e1431e96f3
commit 8364cf0a90

View File

@ -131,7 +131,7 @@ class RecursiveLock {
#endif
}
status_t Lock()
status_t LockWithTimeout(bigtime_t timeout)
{
thread_id thread = find_thread(NULL);
if (thread == fOwner) {
@ -145,7 +145,7 @@ class RecursiveLock {
status = B_OK;
else
#endif
status = acquire_sem(fSemaphore);
status = acquire_sem_etc(fSemaphore, 1, B_RELATIVE_TIMEOUT, timeout);
if (status == B_OK) {
fOwner = thread;
@ -155,6 +155,11 @@ class RecursiveLock {
return status;
}
status_t Lock()
{
return LockWithTimeout(B_INFINITE_TIMEOUT);
}
status_t Unlock()
{
thread_id thread = find_thread(NULL);