Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
src_corelib_thread_qreadwritelock.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
4
#
include
<
QReadWriteLock
>
5
#
include
<
QByteArray
>
6
7
class
ReaderThread
8
{
9
public
:
10
void
run
();
11
};
12
13
class
WriterThread
14
{
15
public
:
16
void
run
();
17
};
18
19
void
read_file
();
20
void
write_file
();
21
22
//! [lock]
23
QReadWriteLock
lock
;
24
25
//! [lock]
26
27
//! [0]
28
void
ReaderThread
::
run
()
29
{
30
//...
31
lock
.lockForRead();
32
read_file
(
)
;
33
lock
.unlock();
34
//...
35
}
36
37
void
WriterThread
::
run
()
38
{
39
//...
40
lock
.lockForWrite();
41
write_file
(
)
;
42
lock
.unlock();
43
//...
44
}
45
//! [0]
46
47
QByteArray
data
;
48
49
//! [1]
50
QByteArray
readData
()
51
{
52
QReadLocker locker(&lock);
53
//...
54
return
data;
55
}
56
//! [1]
57
58
namespace
duplicate_examples
59
{
60
QByteArray
data
;
61
QReadWriteLock
lock
;
62
63
//! [2]
64
QByteArray
readData
()
65
{
66
lock
.lockForRead();
67
//...
68
lock
.unlock();
69
return
data;
70
}
71
//! [2]
72
73
74
//! [3]
75
void
writeData
(
const
QByteArray &data)
76
{
77
QWriteLocker locker(&lock);
78
//...
79
}
80
//! [3]
81
}
82
83
//! [4]
84
void
writeData
(
const
QByteArray &data)
85
{
86
lock
.lockForWrite();
87
//...
88
lock
.unlock();
89
}
90
//! [4]
ReaderThread
Definition
src_corelib_thread_qreadwritelock.cpp:8
ReaderThread::run
void run()
[lock]
Definition
src_corelib_thread_qreadwritelock.cpp:28
WriterThread
Definition
src_corelib_thread_qreadwritelock.cpp:14
WriterThread::run
void run()
Definition
src_corelib_thread_qreadwritelock.cpp:37
duplicate_examples
[1]
Definition
src_corelib_thread_qmutex.cpp:54
duplicate_examples::lock
QReadWriteLock lock
Definition
src_corelib_thread_qreadwritelock.cpp:61
duplicate_examples::writeData
void writeData(const QByteArray &data)
[2]
Definition
src_corelib_thread_qreadwritelock.cpp:75
duplicate_examples::readData
QByteArray readData()
[2]
Definition
src_corelib_thread_qreadwritelock.cpp:64
duplicate_examples::data
QByteArray data
Definition
src_corelib_thread_qreadwritelock.cpp:60
read_file
void read_file()
lock
QReadWriteLock lock
[lock]
Definition
src_corelib_thread_qreadwritelock.cpp:23
data
QByteArray data
[0]
Definition
src_corelib_thread_qreadwritelock.cpp:47
writeData
void writeData(const QByteArray &data)
[4]
Definition
src_corelib_thread_qreadwritelock.cpp:84
write_file
void write_file()
readData
QByteArray readData()
[1]
Definition
src_corelib_thread_qreadwritelock.cpp:50
qtbase
src
corelib
doc
snippets
code
src_corelib_thread_qreadwritelock.cpp
Generated on
for Qt by
1.14.0