From 39ae5e4d1275233861000e67a197b6a16268a2ca Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 2 May 2008 02:20:17 +0000 Subject: [PATCH] Use a mutex instead of a benaphore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25286 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../network/protocols/unix/UnixFifo.cpp | 23 +++++++++---------- .../kernel/network/protocols/unix/UnixFifo.h | 6 ++--- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/add-ons/kernel/network/protocols/unix/UnixFifo.cpp b/src/add-ons/kernel/network/protocols/unix/UnixFifo.cpp index b8d07b0e54..3d01e50cdf 100644 --- a/src/add-ons/kernel/network/protocols/unix/UnixFifo.cpp +++ b/src/add-ons/kernel/network/protocols/unix/UnixFifo.cpp @@ -338,21 +338,20 @@ UnixFifo::UnixFifo(size_t capacity) { fReadCondition.Init(this, "unix fifo read"); fWriteCondition.Init(this, "unix fifo write"); - fLock.sem = -1; + mutex_init(&fLock, "unix fifo"); } UnixFifo::~UnixFifo() { - if (fLock.sem >= 0) - benaphore_destroy(&fLock); + mutex_destroy(&fLock); } status_t UnixFifo::Init() { - return benaphore_init(&fLock, "unix fifo"); + return B_OK; } @@ -498,9 +497,9 @@ UnixFifo::_Read(Request& request, size_t numBytes, bigtime_t timeout, ConditionVariableEntry entry; fReadCondition.Add(&entry, B_CAN_INTERRUPT); - benaphore_unlock(&fLock); + mutex_unlock(&fLock); status_t error = entry.Wait(B_ABSOLUTE_TIMEOUT, timeout); - benaphore_lock(&fLock); + mutex_lock(&fLock); if (error != B_OK) RETURN_ERROR(error); @@ -526,9 +525,9 @@ UnixFifo::_Read(Request& request, size_t numBytes, bigtime_t timeout, ConditionVariableEntry entry; fReadCondition.Add(&entry, B_CAN_INTERRUPT); - benaphore_unlock(&fLock); + mutex_unlock(&fLock); status_t error = entry.Wait(B_ABSOLUTE_TIMEOUT, timeout); - benaphore_lock(&fLock); + mutex_lock(&fLock); if (error != B_OK) RETURN_ERROR(error); @@ -558,9 +557,9 @@ UnixFifo::_Write(Request& request, net_buffer* buffer, bigtime_t timeout, ConditionVariableEntry entry; fWriteCondition.Add(&entry, B_CAN_INTERRUPT); - benaphore_unlock(&fLock); + mutex_unlock(&fLock); status_t error = entry.Wait(B_ABSOLUTE_TIMEOUT, timeout); - benaphore_lock(&fLock); + mutex_lock(&fLock); if (error != B_OK) RETURN_ERROR(error); @@ -585,9 +584,9 @@ UnixFifo::_Write(Request& request, net_buffer* buffer, bigtime_t timeout, ConditionVariableEntry entry; fWriteCondition.Add(&entry, B_CAN_INTERRUPT); - benaphore_unlock(&fLock); + mutex_unlock(&fLock); error = entry.Wait(B_ABSOLUTE_TIMEOUT, timeout); - benaphore_lock(&fLock); + mutex_lock(&fLock); if (error != B_OK) RETURN_ERROR(error); diff --git a/src/add-ons/kernel/network/protocols/unix/UnixFifo.h b/src/add-ons/kernel/network/protocols/unix/UnixFifo.h index 1752fbc1cf..879cf58e33 100644 --- a/src/add-ons/kernel/network/protocols/unix/UnixFifo.h +++ b/src/add-ons/kernel/network/protocols/unix/UnixFifo.h @@ -74,12 +74,12 @@ public: bool Lock() { - return benaphore_lock(&fLock) == B_OK; + return mutex_lock(&fLock) == B_OK; } void Unlock() { - benaphore_unlock(&fLock); + mutex_unlock(&fLock); } void Shutdown(uint32 shutdown); @@ -124,7 +124,7 @@ private: size_t& bytesWritten); private: - benaphore fLock; + mutex fLock; UnixBufferQueue fBuffer; RequestList fReaders; RequestList fWriters;