diff options
Diffstat (limited to 'doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp')
-rw-r--r-- | doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp b/doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp new file mode 100644 index 000000000..6737e9df9 --- /dev/null +++ b/doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp @@ -0,0 +1,45 @@ +//! [0] +while True: + mutex.lock() + keyPressed.wait(mutex) + do_something() + mutex.unlock() +//! [0] + + +//! [1] +while True: + getchar() + keyPressed.wakeAll() + +//! [1] + + +//! [2] +while True: + mutex.lock() + keyPressed.wait(&mutex) + count += 1 + mutex.unlock() + + do_something() + + mutex.lock() + count -= 1 + mutex.unlock() +//! [2] + + +//! [3] +while True: + getchar() + + mutex.lock() + # Sleep until there are no busy worker threads + while count > 0: + mutex.unlock() + sleep(1) + mutex.lock() + keyPressed.wakeAll() + mutex.unlock() +//! [3] |