aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzczepan Zalega <szczepan@nitrokey.com>2017-01-11 16:52:33 +0100
committerSzczepan Zalega <szczepan@nitrokey.com>2017-03-11 15:41:36 +0100
commitfc986f87fd256e2cfdd5edcc5b0cf14faf694441 (patch)
tree12bb54c1462ffa281efc8ba3ce78fc015cbe5c2c
parent55745fccf0c4233c536d8bacead3443a8e431b8d (diff)
downloadlibnitrokey-fc986f87fd256e2cfdd5edcc5b0cf14faf694441.tar.gz
libnitrokey-fc986f87fd256e2cfdd5edcc5b0cf14faf694441.tar.bz2
Use atomic_exchange for atomic operations
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
-rw-r--r--include/device.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/include/device.h b/include/device.h
index 938fc75..42865ee 100644
--- a/include/device.h
+++ b/include/device.h
@@ -6,8 +6,6 @@
#define HID_REPORT_SIZE 65
-// TODO !! SEMAPHORE
-
#include <atomic>
namespace nitrokey {
@@ -60,7 +58,7 @@ public:
std::chrono::milliseconds get_retry_timeout() const { return m_retry_timeout; };
std::chrono::milliseconds get_send_receive_delay() const {return m_send_receive_delay;}
- int get_last_command_status() {int a = last_command_status; last_command_status = 0; return a;};
+ int get_last_command_status() {int a = std::atomic_exchange(&last_command_status, static_cast<uint8_t>(0)); return a;};
void set_last_command_status(uint8_t _err) { last_command_status = _err;} ;
bool last_command_sucessfull() const {return last_command_status == 0;};
DeviceModel get_device_model() const {return m_model;}