summaryrefslogtreecommitdiff
path: root/src/SystemTask/SystemTask.h
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-09-13 21:26:44 +0200
committerJF <jf@codingfield.com>2020-09-13 21:26:44 +0200
commit20f5b0ffba60b24931430a6b40062c5a01589e38 (patch)
tree5b3c95a412f738a34976db2dba12a75cf5e81f71 /src/SystemTask/SystemTask.h
parentd757344f1b6921d84a9b3d6d42b5e0f5a472813a (diff)
Fix race conditions during sleep/wakeup, where SPI/TWI could be disabled while transaction were in progress (https://github.com/JF002/Pinetime/issues/60).
Diffstat (limited to 'src/SystemTask/SystemTask.h')
-rw-r--r--src/SystemTask/SystemTask.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/SystemTask/SystemTask.h b/src/SystemTask/SystemTask.h
index 3812ea91..40277cf3 100644
--- a/src/SystemTask/SystemTask.h
+++ b/src/SystemTask/SystemTask.h
@@ -54,7 +54,9 @@ namespace Pinetime {
Pinetime::Controllers::Ble& bleController;
Pinetime::Controllers::DateTime& dateTimeController;
QueueHandle_t systemTaksMsgQueue;
- bool isSleeping = false;
+ std::atomic<bool> isSleeping{false};
+ std::atomic<bool> isGoingToSleep{false};
+ std::atomic<bool> isWakingUp{false};
Pinetime::Drivers::Watchdog watchdog;
Pinetime::Drivers::WatchdogView watchdogView;
Pinetime::Controllers::NotificationManager& notificationManager;