diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2019-04-16 16:32:08 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2019-04-16 16:32:08 +0200 |
commit | 6630937e63ae5797487b86743a7733c8ae5cc42c (patch) | |
tree | 3d53dacf6430f9099e1fb20835881205de674961 /src/corelib/doc/snippets/code/src_corelib_thread_qsemaphore.cpp | |
parent | 37ed6dae00640f9cc980ffda05347c12a7eb5d7e (diff) | |
parent | c7af193d2e49e9f10b86262e63d8d13abf72b5cf (diff) |
Merge commit 'dev' into 'wip/cmake-merge'
Change-Id: I176c40d031be26a1dd1cf08843e448a660598783
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] |