summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/osx/osxbt.pri
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@qt.io>2018-05-28 13:23:51 +0200
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2018-05-31 08:16:22 +0000
commit370f751edd826f483dec0115000370811ff1202a (patch)
treed8df6bbf70678cbfd664eec6ad1ece7d5e43e941 /src/bluetooth/osx/osxbt.pri
parentaad6e26574ff069e080bf6461c0fb7d0fee9e403 (diff)
Add G(rand)C(entral)D(ispatch) timeout handler
QtBluetooth is using its own dispatch queue in CoreBluetooth back-end - this is where CoreBluetooth is executing all callbacks we're providing in delegate classes. Some operations like service discovery/characteristic or descriptor read(s) amd write(s) e.t.c. may sometimes fail to finish - no value read, no error reported (so delegate's method - callback - is never called). To deal with this we introduce the class OSXBTGCDTimer and GCDTimerDelegate protocol; GCDTimer periodically inserts blocks into the serial LE queue and checks for timeouts upon their execution. Task-number: QTBUG-68422 Change-Id: Ic17bf91d4223ad1ffc7b9808da36c902a4158227 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/bluetooth/osx/osxbt.pri')
-rw-r--r--src/bluetooth/osx/osxbt.pri5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/bluetooth/osx/osxbt.pri b/src/bluetooth/osx/osxbt.pri
index 0f293107..b7ac0535 100644
--- a/src/bluetooth/osx/osxbt.pri
+++ b/src/bluetooth/osx/osxbt.pri
@@ -1,5 +1,8 @@
SOURCES += osx/uistrings.cpp osx/osxbtnotifier.cpp
-PRIVATE_HEADERS += osx/uistrings_p.h
+PRIVATE_HEADERS += osx/uistrings_p.h \
+ osx/osxbtgcdtimer_p.h
+
+OBJECTIVE_SOURCES += osx/osxbtgcdtimer.mm
#QMAKE_CXXFLAGS_WARN_ON += -Wno-nullability-completeness
CONFIG(osx) {