From 7f1f658fec4a1f50d78dc8b8c4efe22bb6a9636b Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Wed, 4 May 2016 07:22:13 +0200 Subject: tracker/hatire: remove race Don't prepend existing remaining data racing with add new data. Expose the lock as a public member. --- tracker-hatire/thread.hpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) mode change 100644 => 100755 tracker-hatire/thread.hpp (limited to 'tracker-hatire/thread.hpp') diff --git a/tracker-hatire/thread.hpp b/tracker-hatire/thread.hpp old mode 100644 new mode 100755 index dd0d8c14..c4ce4761 --- a/tracker-hatire/thread.hpp +++ b/tracker-hatire/thread.hpp @@ -22,6 +22,12 @@ enum results # include #endif +#ifdef __GNUC__ +# define unused(t, i) t __attribute__((unused)) i +#else +# define unused(t, i) t i +#endif + struct thread_settings { QByteArray sCmdStart; @@ -94,7 +100,6 @@ class hatire_thread : public QThread QByteArray data_read; serial_t com_port; thread_settings s; - QMutex data_mtx; void run() override; @@ -102,7 +107,7 @@ private slots: void on_serial_read(); void teardown_serial(); - void sendcmd_impl(const QByteArray& cmd) + void sendcmd_impl(unused(const QByteArray, &cmd)) { #ifndef HATIRE_DEBUG_LOGFILE QByteArray Msg; @@ -160,8 +165,10 @@ public: ~hatire_thread() override; hatire_thread(); - void prepend_unread_data(const QByteArray& data); + void prepend_unread_data_nolock(const QByteArray& data); - QByteArray flush_data_read(); + QByteArray flush_data_read_nolock(); void Log(const QString& message); + + QMutex data_mtx; }; -- cgit v1.2.3