aboutsummaryrefslogtreecommitdiffstats
path: root/src/menu/event_manager.cpp
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2012-09-05 18:30:34 +0200
committerAlexander Sulfrian <alexander@sulfrian.net>2013-01-13 22:40:53 +0100
commit9c34d27a8bc724722e9cae203e0c455573c3d5f1 (patch)
tree47066bed3a0dabf41fc7e7e103b71473e86db70c /src/menu/event_manager.cpp
parent6887913d9abf9240d1b138936868c2a5dc91cac9 (diff)
downloadusdx-9c34d27a8bc724722e9cae203e0c455573c3d5f1.tar.gz
usdx-9c34d27a8bc724722e9cae203e0c455573c3d5f1.tar.xz
usdx-9c34d27a8bc724722e9cae203e0c455573c3d5f1.zip
menu: use boost::shared_mutex
Use everywhere a mutable boost::shared_mutex to enable locking during const getter and the multiple reader and single writer pattern.
Diffstat (limited to 'src/menu/event_manager.cpp')
-rw-r--r--src/menu/event_manager.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/menu/event_manager.cpp b/src/menu/event_manager.cpp
index 83aee360..bc7168af 100644
--- a/src/menu/event_manager.cpp
+++ b/src/menu/event_manager.cpp
@@ -37,7 +37,7 @@ namespace usdx
EventManager::~EventManager(void)
{
- boost::mutex::scoped_lock lock(mutex);
+ boost::unique_lock<boost::shared_mutex> lock(mutex);
while (waiting > 0) {
--waiting;
@@ -57,7 +57,7 @@ namespace usdx
void EventManager::add_event(const SDL_Event& event)
{
- boost::mutex::scoped_lock lock(mutex);
+ boost::unique_lock<boost::shared_mutex> lock(mutex);
not_full.wait(lock, boost::bind(&EventManager::is_not_full, this));
@@ -70,7 +70,7 @@ namespace usdx
void EventManager::get_next_event(SDL_Event& event)
{
- boost::mutex::scoped_lock lock(mutex);
+ boost::unique_lock<boost::shared_mutex> lock(mutex);
not_empty.wait(lock, boost::bind(&EventManager::is_not_empty, this));
@@ -84,7 +84,7 @@ namespace usdx
bool EventManager::available(void)
{
- boost::mutex::scoped_lock lock(mutex);
+ boost::shared_lock<boost::shared_mutex> lock(mutex);
return waiting < buffer.capacity();
}