diff --git a/src/servers/app/server/DisplayDriver.cpp b/src/servers/app/server/DisplayDriver.cpp index 89d2749396..c8a41cb1da 100644 --- a/src/servers/app/server/DisplayDriver.cpp +++ b/src/servers/app/server/DisplayDriver.cpp @@ -36,7 +36,7 @@ */ DisplayDriver::DisplayDriver(void) { - _lock_sem=create_sem(1,"DisplayDriver Lock"); + _locker=new BLocker(); _buffer_depth=0; _buffer_width=0; @@ -56,7 +56,7 @@ DisplayDriver::DisplayDriver(void) */ DisplayDriver::~DisplayDriver(void) { - delete_sem(_lock_sem); + delete _locker; } /*! @@ -639,9 +639,10 @@ bool DisplayDriver::IsCursorObscured(bool state) */ bool DisplayDriver::_Lock(bigtime_t timeout) { - if(acquire_sem_etc(_lock_sem,1,B_RELATIVE_TIMEOUT,timeout)!=B_NO_ERROR) - return false; - return true; + if(timeout==B_INFINITE_TIMEOUT) + return _locker->Lock(); + + return (_locker->LockWithTimeout(timeout)==B_OK)?true:false; } /*! @@ -649,7 +650,7 @@ bool DisplayDriver::_Lock(bigtime_t timeout) */ void DisplayDriver::_Unlock(void) { - release_sem(_lock_sem); + _locker->Unlock(); } /*! diff --git a/src/servers/app/server/DisplayDriver.h b/src/servers/app/server/DisplayDriver.h index 1bb5de2cdf..f4ee82b4ae 100644 --- a/src/servers/app/server/DisplayDriver.h +++ b/src/servers/app/server/DisplayDriver.h @@ -34,6 +34,7 @@ #include #include #include +#include #include "RGBColor.h" class ServerCursor; @@ -157,7 +158,7 @@ protected: ServerCursor *_GetCursor(void); private: - sem_id _lock_sem; + BLocker *_locker; uint8 _buffer_depth; uint16 _buffer_width; uint16 _buffer_height;