diff options
author | Liang Qi <liang.qi@qt.io> | 2018-10-25 07:21:05 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-10-25 07:21:53 +0200 |
commit | e28e91ae99b8c3859899e04cc9370534c7c7b86d (patch) | |
tree | cca81b1e745be4f25aab78e8e917c2324594e539 /src/corelib/doc/snippets/code/src_corelib_thread_qsemaphore.cpp | |
parent | 5ea233ca6782eb27adf596515cb66ef3dadc1d5e (diff) | |
parent | ebfad73b4e44fe6db8059200da105b4b87888718 (diff) |
Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
src/corelib/animation/qpropertyanimation.cpp
src/gui/image/qicon.cpp
tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp
Change-Id: I3698172b7b44ebb487cb38f50fd2c4a9f8a35b21
Diffstat (limited to 'src/corelib/doc/snippets/code/src_corelib_thread_qsemaphore.cpp')
-rw-r--r-- | src/corelib/doc/snippets/code/src_corelib_thread_qsemaphore.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/corelib/doc/snippets/code/src_corelib_thread_qsemaphore.cpp b/src/corelib/doc/snippets/code/src_corelib_thread_qsemaphore.cpp index 2081e4fdd0..52105bce0b 100644 --- a/src/corelib/doc/snippets/code/src_corelib_thread_qsemaphore.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_thread_qsemaphore.cpp @@ -81,3 +81,32 @@ QSemaphore sem(5); // sem.available() == 5 sem.tryAcquire(250, 1000); // sem.available() == 5, waits 1000 milliseconds and returns false sem.tryAcquire(3, 30000); // sem.available() == 2, returns true without waiting //! [3] + +//! [4] +// ... do something that may throw or return early +sem.release(); +//! [4] + +//! [5] +const QSemaphoreReleaser releaser(sem); +// ... do something that may throw or early return +// implicitly calls sem.release() here and at every other return in between +//! [5] + +//! [6] +{ // some scope + QSemaphoreReleaser releaser; // does nothing + // ... + if (someCondition) { + releaser = QSemaphoreReleaser(sem); + // ... + } + // ... +} // conditionally calls sem.release(), depending on someCondition +//! [6] + +//! [7] +releaser.cancel(); // avoid releasing old semaphore() +releaser = QSemaphoreReleaser(sem, 42); +// now will call sem.release(42) when 'releaser' is destroyed +//! [7] |