diff --git a/src/switcher-data.cpp b/src/switcher-data.cpp index f12e3409..26e0902c 100644 --- a/src/switcher-data.cpp +++ b/src/switcher-data.cpp @@ -14,6 +14,11 @@ std::mutex *GetSwitcherMutex() return switcher ? &switcher->m : nullptr; } +std::unique_lock *GetSwitcherLoopLock() +{ + return switcher ? switcher->mainLoopLock : nullptr; +} + bool VerboseLoggingEnabled() { return switcher ? switcher->verbose : false; diff --git a/src/utils/sync-helper.cpp b/src/utils/sync-helper.cpp index 553caaea..7f1d801f 100644 --- a/src/utils/sync-helper.cpp +++ b/src/utils/sync-helper.cpp @@ -3,9 +3,21 @@ namespace advss { std::mutex *GetSwitcherMutex(); +std::unique_lock *GetSwitcherLoopLock(); + +std::mutex *GetMutex() +{ + return GetSwitcherMutex(); +} + std::lock_guard LockContext() { return std::lock_guard(*GetSwitcherMutex()); } +std::unique_lock *GetLoopLock() +{ + return GetSwitcherLoopLock(); +} + } // namespace advss diff --git a/src/utils/sync-helper.hpp b/src/utils/sync-helper.hpp index 9783fddc..78f515b9 100644 --- a/src/utils/sync-helper.hpp +++ b/src/utils/sync-helper.hpp @@ -3,6 +3,8 @@ namespace advss { +[[nodiscard]] std::mutex *GetMutex(); [[nodiscard]] std::lock_guard LockContext(); +[[nodiscard]] std::unique_lock *GetLoopLock(); } // namespace advss