From e88c7b29ea9ec9fcd6ac6b15c965085152100d2e Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 18 Jun 2017 18:19:17 +0200 Subject: get rid of "volatile" abuse We heavily used "volatile bool" to check if the thread loop should stop. But this functionality is already provided by Qt5's QThread::requestInterruption. In other cases, "volatile" is wonderfully underspecified so it's better to ditch its usage in favor of std::atomic. At the time we don't appear to be using the "volatile" keyword except when calling win32's Interlocked*() family of functions as necessary. In freetrackclient's header the "volatile" qualifier was used as part of a typedef. This doesn't work. Use it as part of data declaration. --- tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp | 7 ++++--- tracker-freepie-udp/ftnoir_tracker_freepie-udp.h | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'tracker-freepie-udp') diff --git a/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp index 4c5d14ef..e5667ebb 100644 --- a/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp +++ b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp @@ -6,13 +6,13 @@ #include -tracker_freepie::tracker_freepie() : pose { 0,0,0, 0,0,0 }, should_quit(false) +tracker_freepie::tracker_freepie() : pose { 0,0,0, 0,0,0 } { } tracker_freepie::~tracker_freepie() { - should_quit = true; + requestInterruption(); wait(); } @@ -42,7 +42,8 @@ void tracker_freepie::run() { sock.bind(QHostAddress::Any, (unsigned short) s.port, QUdpSocket::ShareAddress | QUdpSocket::ReuseAddressHint); - while (!should_quit) { + while (!isInterruptionRequested()) + { int order[] = { bound(s.idx_x, 0, 2), bound(s.idx_y, 0, 2), diff --git a/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h index 5a98e194..51a710f8 100644 --- a/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h +++ b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.h @@ -42,7 +42,6 @@ private: QUdpSocket sock; settings s; QMutex mtx; - volatile bool should_quit; }; class dialog_freepie : public ITrackerDialog -- cgit v1.2.3