-rw-r--r-- | qmake/tools/qmutex_unix.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/qmake/tools/qmutex_unix.cpp b/qmake/tools/qmutex_unix.cpp index c861b2d..3eb59cf 100644 --- a/qmake/tools/qmutex_unix.cpp +++ b/qmake/tools/qmutex_unix.cpp | |||
@@ -22,50 +22,51 @@ | |||
22 | ** licenses may use this file in accordance with the Qt Commercial License | 22 | ** licenses may use this file in accordance with the Qt Commercial License |
23 | ** Agreement provided with the Software. | 23 | ** Agreement provided with the Software. |
24 | ** | 24 | ** |
25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 25 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 26 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
27 | ** | 27 | ** |
28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for | 28 | ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for |
29 | ** information about Qt Commercial License Agreements. | 29 | ** information about Qt Commercial License Agreements. |
30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. | 30 | ** See http://www.trolltech.com/qpl/ for QPL licensing information. |
31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 31 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
32 | ** | 32 | ** |
33 | ** Contact info@trolltech.com if any conditions of this licensing are | 33 | ** Contact info@trolltech.com if any conditions of this licensing are |
34 | ** not clear to you. | 34 | ** not clear to you. |
35 | ** | 35 | ** |
36 | **********************************************************************/ | 36 | **********************************************************************/ |
37 | 37 | ||
38 | #if defined(QT_THREAD_SUPPORT) | 38 | #if defined(QT_THREAD_SUPPORT) |
39 | 39 | ||
40 | #include "qplatformdefs.h" | 40 | #include "qplatformdefs.h" |
41 | 41 | ||
42 | typedef pthread_mutex_t Q_MUTEX_T; | 42 | typedef pthread_mutex_t Q_MUTEX_T; |
43 | 43 | ||
44 | // POSIX threads mutex types | 44 | // POSIX threads mutex types |
45 | #if ((defined(PTHREAD_MUTEX_RECURSIVE) && defined(PTHREAD_MUTEX_DEFAULT)) || \ | 45 | #if ((defined(PTHREAD_MUTEX_RECURSIVE) && defined(PTHREAD_MUTEX_DEFAULT)) || \ |
46 | defined(Q_OS_FREEBSD)) && !defined(Q_OS_UNIXWARE) && !defined(Q_OS_SOLARIS) | 46 | defined(Q_OS_FREEBSD)) && !defined(Q_OS_UNIXWARE) && !defined(Q_OS_SOLARIS) && \ |
47 | // POSIX 1003.1c-1995 - We love this OS | 47 | !defined(Q_OS_MAC) |
48 | // POSIX 1003.1c-1995 - We love this OS | ||
48 | # define Q_MUTEX_SET_TYPE(a, b) pthread_mutexattr_settype((a), (b)) | 49 | # define Q_MUTEX_SET_TYPE(a, b) pthread_mutexattr_settype((a), (b)) |
49 | # if defined(QT_CHECK_RANGE) | 50 | # if defined(QT_CHECK_RANGE) |
50 | # define Q_NORMAL_MUTEX_TYPE PTHREAD_MUTEX_ERRORCHECK | 51 | # define Q_NORMAL_MUTEX_TYPE PTHREAD_MUTEX_ERRORCHECK |
51 | # else | 52 | # else |
52 | # define Q_NORMAL_MUTEX_TYPE PTHREAD_MUTEX_DEFAULT | 53 | # define Q_NORMAL_MUTEX_TYPE PTHREAD_MUTEX_DEFAULT |
53 | # endif | 54 | # endif |
54 | # define Q_RECURSIVE_MUTEX_TYPE PTHREAD_MUTEX_RECURSIVE | 55 | # define Q_RECURSIVE_MUTEX_TYPE PTHREAD_MUTEX_RECURSIVE |
55 | #elif defined(MUTEX_NONRECURSIVE_NP) && defined(MUTEX_RECURSIVE_NP) | 56 | #elif defined(MUTEX_NONRECURSIVE_NP) && defined(MUTEX_RECURSIVE_NP) |
56 | // POSIX 1003.4a pthreads draft extensions | 57 | // POSIX 1003.4a pthreads draft extensions |
57 | # define Q_MUTEX_SET_TYPE(a, b) pthread_mutexattr_setkind_np((a), (b)); | 58 | # define Q_MUTEX_SET_TYPE(a, b) pthread_mutexattr_setkind_np((a), (b)); |
58 | # define Q_NORMAL_MUTEX_TYPE MUTEX_NONRECURSIVE_NP | 59 | # define Q_NORMAL_MUTEX_TYPE MUTEX_NONRECURSIVE_NP |
59 | # define Q_RECURSIVE_MUTEX_TYPE MUTEX_RECURSIVE_NP | 60 | # define Q_RECURSIVE_MUTEX_TYPE MUTEX_RECURSIVE_NP |
60 | #else | 61 | #else |
61 | // Unknown mutex types - skip them | 62 | // Unknown mutex types - skip them |
62 | # define Q_MUTEX_SET_TYPE(a, b) | 63 | # define Q_MUTEX_SET_TYPE(a, b) |
63 | # undef Q_NORMAL_MUTEX_TYPE | 64 | # undef Q_NORMAL_MUTEX_TYPE |
64 | # undef Q_RECURSIVE_MUTEX_TYPE | 65 | # undef Q_RECURSIVE_MUTEX_TYPE |
65 | #endif | 66 | #endif |
66 | 67 | ||
67 | #include "qmutex.h" | 68 | #include "qmutex.h" |
68 | #include "qmutex_p.h" | 69 | #include "qmutex_p.h" |
69 | 70 | ||
70 | #include <errno.h> | 71 | #include <errno.h> |
71 | #include <string.h> | 72 | #include <string.h> |
@@ -640,48 +641,49 @@ bool QMutex::tryLock() | |||
640 | 641 | ||
641 | void waitForSignal() | 642 | void waitForSignal() |
642 | { | 643 | { |
643 | ... | 644 | ... |
644 | ... | 645 | ... |
645 | ... | 646 | ... |
646 | 647 | ||
647 | while ( ! signalled ) | 648 | while ( ! signalled ) |
648 | waitcondition.wait( locker.mutex() ); | 649 | waitcondition.wait( locker.mutex() ); |
649 | 650 | ||
650 | ... | 651 | ... |
651 | ... | 652 | ... |
652 | ... | 653 | ... |
653 | } | 654 | } |
654 | }; | 655 | }; |
655 | \endcode | 656 | \endcode |
656 | 657 | ||
657 | \sa QMutex, QWaitCondition | 658 | \sa QMutex, QWaitCondition |
658 | */ | 659 | */ |
659 | 660 | ||
660 | /*! | 661 | /*! |
661 | \fn QMutexLocker::QMutexLocker( QMutex *mutex ) | 662 | \fn QMutexLocker::QMutexLocker( QMutex *mutex ) |
662 | 663 | ||
663 | Constructs a QMutexLocker and locks \a mutex. The mutex will be | 664 | Constructs a QMutexLocker and locks \a mutex. The mutex will be |
664 | unlocked when the QMutexLocker is destroyed. | 665 | unlocked when the QMutexLocker is destroyed. If \a mutex is zero, |
666 | QMutexLocker does nothing. | ||
665 | 667 | ||
666 | \sa QMutex::lock() | 668 | \sa QMutex::lock() |
667 | */ | 669 | */ |
668 | 670 | ||
669 | /*! | 671 | /*! |
670 | \fn QMutexLocker::~QMutexLocker() | 672 | \fn QMutexLocker::~QMutexLocker() |
671 | 673 | ||
672 | Destroys the QMutexLocker and unlocks the mutex which was locked | 674 | Destroys the QMutexLocker and unlocks the mutex which was locked |
673 | in the constructor. | 675 | in the constructor. |
674 | 676 | ||
675 | \sa QMutexLocker::QMutexLocker(), QMutex::unlock() | 677 | \sa QMutexLocker::QMutexLocker(), QMutex::unlock() |
676 | */ | 678 | */ |
677 | 679 | ||
678 | /*! | 680 | /*! |
679 | \fn QMutex *QMutexLocker::mutex() const | 681 | \fn QMutex *QMutexLocker::mutex() const |
680 | 682 | ||
681 | Returns a pointer to the mutex which was locked in the | 683 | Returns a pointer to the mutex which was locked in the |
682 | constructor. | 684 | constructor. |
683 | 685 | ||
684 | \sa QMutexLocker::QMutexLocker() | 686 | \sa QMutexLocker::QMutexLocker() |
685 | */ | 687 | */ |
686 | 688 | ||
687 | #endif // QT_THREAD_SUPPORT | 689 | #endif // QT_THREAD_SUPPORT |