]> git.lyx.org Git - lyx.git/blob - src/support/mutex.cpp
Let paragraph::requestSpellcheck() consider contained insets
[lyx.git] / src / support / mutex.cpp
1 /**
2  * \file mutex.cpp
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Peter Kümmel
7  *
8  * Full author contact details are available in file CREDITS.
9  */
10
11 #include <config.h>
12
13 #include "support/mutex.h"
14
15 #include <QMutex>
16
17
18 namespace lyx {
19
20
21 struct Mutex::Private
22 {
23 #if QT_VERSION < 0x060000
24         // QMutex::Recursive: less risks for dead-locks
25         Private() : qmutex_(QMutex::Recursive)
26         {
27         }
28
29         QMutex qmutex_;
30 #else
31         Private() : qmutex_()
32         {
33         }
34
35         QRecursiveMutex qmutex_;
36 #endif
37 };
38
39
40 Mutex::Mutex() : d(new Private)
41 {
42 }
43
44
45 Mutex::~Mutex()
46 {
47         delete d;
48 }
49
50
51 Mutex::Locker::Locker(Mutex* mtx) : mutex_(mtx)
52 {
53         mutex_->d->qmutex_.lock();
54 }
55
56
57 Mutex::Locker::~Locker()
58 {
59         mutex_->d->qmutex_.unlock();
60 }
61
62
63
64 } // namespace lyx