doc: clangqdoc documents the threads case

qmutex.h is updated to let clangqdoc document the threads case,
because the no-threads case is not interesting, and clang can
handle everything declared in qmutex.h. This change required
that a few minor qdoc errors be corrected in qmutex.cpp as well.

Change-Id: Icb4122f2179d6aad39dc68376498364820143297
Reviewed-by: Martin Smith <martin.smith@qt.io>
This commit is contained in:
Martin Smith 2016-11-29 11:43:40 +01:00
parent 0e810e27a5
commit 9605f4f47b
2 changed files with 20 additions and 6 deletions

View File

@ -266,6 +266,9 @@ bool QMutex::tryLock(int timeout) QT_MUTEX_LOCK_NOEXCEPT
/*! \fn bool QMutex::try_lock()
\since 5.8
Attempts to lock the mutex. This function returns \c true if the lock
was obtained; otherwise it returns \c false.
This function is provided for compatibility with the Standard Library
concept \c Lockable. It is equivalent to tryLock().
*/
@ -336,16 +339,23 @@ void QMutex::unlock() Q_DECL_NOTHROW
unlockInternal();
}
/*!
\fn bool QMutex::isRecursive() const
\since 5.7
Returns \c true if the mutex is recursive.
*/
bool QBasicMutex::isRecursive() Q_DECL_NOTHROW
{
return QT_PREPEND_NAMESPACE(isRecursive)(d_ptr.loadAcquire());
}
/*!
\overload
\since 5.7
Returns \c true if the mutex is recursive
Returns \c true if the mutex is recursive.
*/
bool QBasicMutex::isRecursive() const Q_DECL_NOTHROW
{

View File

@ -54,7 +54,7 @@ class tst_QMutex;
QT_BEGIN_NAMESPACE
#if !defined(QT_NO_THREAD) && !defined(Q_QDOC)
#if !defined(QT_NO_THREAD) || defined(Q_CLANG_QDOC)
#ifdef Q_OS_LINUX
# define QT_MUTEX_LOCK_NOEXCEPT Q_DECL_NOTHROW
@ -189,6 +189,7 @@ private:
class Q_CORE_EXPORT QMutexLocker
{
public:
#ifndef Q_CLANG_QDOC
inline explicit QMutexLocker(QBasicMutex *m) QT_MUTEX_LOCK_NOEXCEPT
{
Q_ASSERT_X((reinterpret_cast<quintptr>(m) & quintptr(1u)) == quintptr(0),
@ -200,6 +201,9 @@ public:
val |= 1;
}
}
#else
QMutexLocker(QMutex *) { }
#endif
inline ~QMutexLocker() { unlock(); }
inline void unlock() Q_DECL_NOTHROW
@ -240,7 +244,7 @@ private:
quintptr val;
};
#else // QT_NO_THREAD or Q_QDOC
#else // QT_NO_THREAD && !Q_CLANG_QDOC
class Q_CORE_EXPORT QMutex
{
@ -255,7 +259,7 @@ public:
inline void unlock() Q_DECL_NOTHROW {}
inline bool isRecursive() const Q_DECL_NOTHROW { return true; }
#if QT_HAS_INCLUDE(<chrono>) || defined(Q_QDOC)
#if QT_HAS_INCLUDE(<chrono>)
template <class Rep, class Period>
inline bool try_lock_for(std::chrono::duration<Rep, Period> duration) Q_DECL_NOTHROW
{
@ -291,7 +295,7 @@ private:
typedef QMutex QBasicMutex;
#endif // QT_NO_THREAD or Q_QDOC
#endif // QT_NO_THREAD && !Q_CLANG_QDOC
QT_END_NAMESPACE