aboutsummaryrefslogtreecommitdiffstats
path: root/doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp
diff options
context:
space:
mode:
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.cpp45
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]