From 7cc4b1701aa2923573adabceed486229abba5a2d Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Fri, 20 Mar 2026 13:44:00 +0100 Subject: add hub instance info (#869) - Improvement: Hub module listing now includes per-instance process metrics (memory, CPU time, working set, pagefile usage) - Improvement: Hub now monitors provisioned instance health in the background and refreshes process metrics periodically - Improvement: Hub no longer exposes raw `StorageServerInstance` pointers to callers; instance state is returned as value snapshots (`Hub::InstanceInfo`) - Improvement: Hub instance access is now guarded by RAII per-instance locks (`SharedLockedPtr`/`ExclusiveLockedPtr`), preventing concurrent modifications during provisioning and deprovisioning - Improvement: Hub instance lifecycle is now tracked as a `HubInstanceState` enum covering transitional states (Provisioning, Deprovisioning, Hibernating, Waking); exposed as a string in the HTTP API and dashboard --- src/zencore/thread.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/zencore/thread.cpp') diff --git a/src/zencore/thread.cpp b/src/zencore/thread.cpp index 54459cbaa..f74791333 100644 --- a/src/zencore/thread.cpp +++ b/src/zencore/thread.cpp @@ -146,6 +146,12 @@ RwLock::AcquireShared() noexcept m_Mutex.lock_shared(); } +bool +RwLock::TryAcquireShared() noexcept +{ + return m_Mutex.try_lock_shared(); +} + void RwLock::ReleaseShared() noexcept { @@ -158,6 +164,12 @@ RwLock::AcquireExclusive() noexcept m_Mutex.lock(); } +bool +RwLock::TryAcquireExclusive() noexcept +{ + return m_Mutex.try_lock(); +} + void RwLock::ReleaseExclusive() noexcept { -- cgit v1.2.3