From 676d6225d4e9490357505af1a60dcde18ba3f894 Mon Sep 17 00:00:00 2001 From: Andreas Volz Date: Sun, 29 Nov 2009 17:37:17 +0100 Subject: [PATCH] patch from "Freyensee, James P" , but default is old implementation --- include/dbus-c++/eventloop.h | 2 +- src/eventloop.cpp | 12 ++++++++++-- 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()