diff options
author | Alex Blasche <alexander.blasche@qt.io> | 2017-06-28 16:21:01 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@qt.io> | 2017-06-29 08:46:47 +0000 |
commit | b93dc2756d9947236deb955634b499b27aaaa414 (patch) | |
tree | 4d06aaf5a14745ddd4923aab2442bdafc5c8781c /examples/bluetooth/pingpong | |
parent | cb1403c242e5ca9033a4390b058b194157b9bcc9 (diff) |
Fix concurrent access to QBluetoothSocket::canReadLine() on Android
On Android, the socket's read buffer is managed in the Java thread.
QBluetoothSocket::canReadLine() is public API (most likely) being called
by in the main Qt thread though. The function directly called into the
Java buffer instance without proper locking. This can create race conditions.
Starting with this patch canReadLine() calls another QBluetoothSocketPrivate
indirection to allow a platform specific implementation. This affects
WinRT, BlueZ and the dummy backend too.
This is not an issue on macOS as its implementation of QBluetoothSocket
is separate and does not have to deal with multiple
QBluetoothSocketPrivate implementations.
Task-number: QTBUG-58190
Task-number: QTBUG-60830
Change-Id: Idae19f1aee6f809699d36519b01a3c68ad9c563d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'examples/bluetooth/pingpong')
0 files changed, 0 insertions, 0 deletions