aboutsummaryrefslogtreecommitdiffstats
path: root/doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp')
-rw-r--r--doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp b/doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp
new file mode 100644
index 000000000..d8c088d69
--- /dev/null
+++ b/doc/codesnippets/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp
@@ -0,0 +1,61 @@
+//! [0]
+lock = QReadWriteLock()
+
+class ReaderThread:
+ # ...
+ def run():
+ # ...
+ lock.lockForRead()
+ read_file()
+ lock.unlock()
+ # ...
+
+class WriterThread:
+ #...
+ def run():
+ # ...
+ lock.lockForWrite()
+ write_file()
+ lock.unlock()
+ # ...
+//! [0]
+
+
+//! [1]
+lock = QReadWriteLock()
+
+def readData():
+ locker = QReadLocker(lock)
+ # ...
+ return data
+//! [1]
+
+
+//! [2]
+lock = QReadWriteLock()
+
+def readData():
+ locker.lockForRead()
+ # ...
+ locker.unlock()
+ return data
+//! [2]
+
+
+//! [3]
+lock = QReadWriteLock()
+
+def writeData(data):
+ locker = QWriteLocker(lock)
+ # ...
+//! [3]
+
+
+//! [4]
+lock = QReadWriteLock()
+
+def writeData(data):
+ locker.lockForWrite()
+ # ...
+ locker.unlock()
+//! [4]