Split off RecursiveMutex from Mutex (#437)

* Split off RecursiveMutex from Mutex

* Fix

* Code quality
This commit is contained in:
Ken Van Hoeylandt
2025-12-28 12:30:54 +01:00
committed by GitHub
parent f48654d3dc
commit 3fc2ff8bc6
45 changed files with 185 additions and 177 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ namespace tt::app {
typedef std::unordered_map<std::string, std::shared_ptr<AppManifest>> AppManifestMap;
static AppManifestMap app_manifest_map;
static Mutex hash_mutex(Mutex::Type::Normal);
static Mutex hash_mutex;
void addAppManifest(const AppManifest& manifest) {
TT_LOG_I(TAG, "Registering manifest %s", manifest.appId.c_str());
@@ -9,6 +9,7 @@
#include <Tactility/service/loader/Loader.h>
#include <Tactility/Assets.h>
#include <Tactility/RecursiveMutex.h>
#include <Tactility/Tactility.h>
#include <Tactility/Timer.h>
@@ -24,7 +25,7 @@ class I2cScannerApp final : public App {
static constexpr auto* STOP_SCAN_TEXT = "Stop scan";
// Core
Mutex mutex = Mutex(Mutex::Type::Recursive);
RecursiveMutex mutex;
std::unique_ptr<Timer> scanTimer = nullptr;
// State
ScanState scanState = ScanStateInitial;
@@ -1,4 +1,5 @@
#include <Tactility/Assets.h>
#include <Tactility/RecursiveMutex.h>
#include <Tactility/app/timezone/TimeZone.h>
#include <Tactility/app/localesettings/TextResources.h>
#include <Tactility/lvgl/Toolbar.h>
@@ -26,7 +27,7 @@ extern const AppManifest manifest;
class LocaleSettingsApp final : public App {
tt::i18n::TextResources textResources = tt::i18n::TextResources(TEXT_RESOURCE_PATH);
Mutex mutex = Mutex(Mutex::Type::Recursive);
RecursiveMutex mutex;
lv_obj_t* timeZoneLabel = nullptr;
lv_obj_t* regionLabel = nullptr;
lv_obj_t* languageDropdown = nullptr;
@@ -1,6 +1,7 @@
#include <Tactility/Assets.h>
#include <Tactility/app/AppManifest.h>
#include <Tactility/lvgl/Toolbar.h>
#include <Tactility/RecursiveMutex.h>
#include <Tactility/service/loader/Loader.h>
#include <Tactility/settings/Time.h>
@@ -14,7 +15,7 @@ extern const AppManifest manifest;
class TimeDateSettingsApp final : public App {
Mutex mutex = Mutex(Mutex::Type::Recursive);
RecursiveMutex mutex;
static void onTimeFormatChanged(lv_event_t* event) {
auto* widget = lv_event_get_target_obj(event);
+2 -2
View File
@@ -1,12 +1,12 @@
#include "Tactility/hal/Device.h"
#include <Tactility/Mutex.h>
#include <Tactility/RecursiveMutex.h>
#include <algorithm>
namespace tt::hal {
std::vector<std::shared_ptr<Device>> devices;
Mutex mutex = Mutex(Mutex::Type::Recursive);
RecursiveMutex mutex;
static Device::Id nextId = 0;
#define TAG "devices"
+2 -2
View File
@@ -1,6 +1,6 @@
#include "Tactility/hal/spi/Spi.h"
#include <Tactility/Mutex.h>
#include <Tactility/RecursiveMutex.h>
namespace tt::hal::spi {
@@ -24,7 +24,7 @@ bool init(const std::vector<Configuration>& configurations) {
if (configuration.lock != nullptr) {
data.lock = configuration.lock;
} else {
data.lock = std::make_shared<Mutex>(Mutex::Type::Recursive);
data.lock = std::make_shared<RecursiveMutex>();
}
}
+9 -10
View File
@@ -1,23 +1,22 @@
#define LV_USE_PRIVATE_API 1 // For actual lv_obj_t declaration
#include "Tactility/lvgl/Statusbar.h"
#include "Tactility/lvgl/Style.h"
#include "Tactility/lvgl/LvglSync.h"
#include <Tactility/Tactility.h>
#include <Tactility/TactilityCore.h>
#include <Tactility/kernel/SystemEvents.h>
#include <Tactility/Mutex.h>
#include <Tactility/lvgl/Statusbar.h>
#include <Tactility/lvgl/Style.h>
#include <Tactility/lvgl/LvglSync.h>
#include <Tactility/PubSub.h>
#include <Tactility/TactilityCore.h>
#include <Tactility/Timer.h>
#include <Tactility/RecursiveMutex.h>
#include <Tactility/settings/Time.h>
#include <Tactility/Timer.h>
#include <lvgl.h>
#include <Tactility/Tactility.h>
namespace tt::lvgl {
#define TAG "statusbar"
constexpr auto TAG = "statusbar";
static void onUpdateTime();
@@ -28,7 +27,7 @@ struct StatusbarIcon {
};
struct StatusbarData {
Mutex mutex = Mutex(Mutex::Type::Recursive);
RecursiveMutex mutex;
std::shared_ptr<PubSub<void*>> pubsub = std::make_shared<PubSub<void*>>();
StatusbarIcon icons[STATUSBAR_ICON_LIMIT] = {};
Timer* time_update_timer = new Timer(Timer::Type::Once, [] { onUpdateTime(); });
@@ -17,8 +17,8 @@ typedef std::unordered_map<std::string, std::shared_ptr<ServiceInstance>> Servic
static ManifestMap service_manifest_map;
static ServiceInstanceMap service_instance_map;
static Mutex manifest_mutex(Mutex::Type::Normal);
static Mutex instance_mutex(Mutex::Type::Normal);
static Mutex manifest_mutex;
static Mutex instance_mutex;
void addService(std::shared_ptr<const ServiceManifest> manifest, bool autoStart) {
assert(manifest != nullptr);
+3 -2
View File
@@ -9,6 +9,7 @@
#include <Tactility/EventFlag.h>
#include <Tactility/Tactility.h>
#include <Tactility/kernel/SystemEvents.h>
#include <Tactility/RecursiveMutex.h>
#include <Tactility/service/ServiceContext.h>
#include <Tactility/service/wifi/WifiGlobals.h>
#include <Tactility/service/wifi/WifiSettings.h>
@@ -48,8 +49,8 @@ class Wifi {
public:
/** @brief Locking mechanism for modifying the Wifi instance */
Mutex radioMutex = Mutex(Mutex::Type::Recursive);
Mutex dataMutex = Mutex(Mutex::Type::Recursive);
RecursiveMutex radioMutex;
RecursiveMutex dataMutex;
std::unique_ptr<Timer> autoConnectTimer;
/** @brief The public event bus */
std::shared_ptr<PubSub<WifiEvent>> pubsub = std::make_shared<PubSub<WifiEvent>>();
+2 -2
View File
@@ -4,8 +4,8 @@
#include <Tactility/Check.h>
#include <Tactility/Log.h>
#include <Tactility/Mutex.h>
#include <Tactility/PubSub.h>
#include <Tactility/RecursiveMutex.h>
#include <Tactility/service/Service.h>
#include <Tactility/service/ServiceManifest.h>
@@ -15,7 +15,7 @@ constexpr auto* TAG = "Wifi";
struct Wifi {
/** @brief Locking mechanism for modifying the Wifi instance */
Mutex mutex = Mutex(Mutex::Type::Recursive);
RecursiveMutex mutex;
/** @brief The public event bus */
std::shared_ptr<PubSub<WifiEvent>> pubsub = std::make_shared<PubSub<WifiEvent>>();
/** @brief The internal message queue */