summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Volz <andreas@frodo.mittelerde>2009-11-29 17:37:17 +0100
committerAndreas Volz <andreas@frodo.mittelerde>2009-11-29 17:37:17 +0100
commit676d6225d4e9490357505af1a60dcde18ba3f894 (patch)
tree42a23825b46b9d0f56fc94987495599e1cbd534c
parente23c8c47503fc6a24886173e233355414975cb67 (diff)
downloaddbus-c++-676d6225d4e9490357505af1a60dcde18ba3f894.tar.gz
patch from "Freyensee, James P" <james.p.freyensee@intel.com>, but default is old implementation
-rw-r--r--include/dbus-c++/eventloop.h2
-rw-r--r--src/eventloop.cpp12
2 files changed, 11 insertions, 3 deletions
diff --git a/include/dbus-c++/eventloop.h b/include/dbus-c++/eventloop.h
index fa6728b..8ba6064 100644
--- a/include/dbus-c++/eventloop.h
+++ b/include/dbus-c++/eventloop.h
@@ -126,7 +126,7 @@ class DXXAPI DefaultMutex
{
public:
- DefaultMutex();
+ DefaultMutex(bool recursive = false);
~DefaultMutex();
diff --git a/src/eventloop.cpp b/src/eventloop.cpp
index d64197d..34ae2d1 100644
--- a/src/eventloop.cpp
+++ b/src/eventloop.cpp
@@ -75,9 +75,17 @@ DefaultWatch::~DefaultWatch()
_disp->_mutex_w.unlock();
}
-DefaultMutex::DefaultMutex()
+DefaultMutex::DefaultMutex(bool recursive)
{
- pthread_mutex_init(&_mutex, NULL);
+ if (recursive)
+ {
+ pthread_mutex_t recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+ _mutex = recmutex;
+ }
+ else
+ {
+ pthread_mutex_init(&_mutex, NULL);
+ }
}
DefaultMutex::~DefaultMutex()