aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/hub/storageserverinstance.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenserver/hub/storageserverinstance.h')
-rw-r--r--src/zenserver/hub/storageserverinstance.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/zenserver/hub/storageserverinstance.h b/src/zenserver/hub/storageserverinstance.h
index ba15133bf..9963f640e 100644
--- a/src/zenserver/hub/storageserverinstance.h
+++ b/src/zenserver/hub/storageserverinstance.h
@@ -81,6 +81,10 @@ public:
return m_Instance->UpdateMetricsLocked();
}
+#if ZEN_WITH_TESTS
+ void TerminateForTesting() const; // kills the child process to simulate a crash
+#endif
+
private:
RwLock* m_Lock = nullptr;
StorageServerInstance* m_Instance = nullptr;
@@ -122,6 +126,7 @@ public:
void Deprovision();
[[nodiscard]] bool Hibernate();
[[nodiscard]] bool Wake();
+ [[nodiscard]] bool RecoverFromCrash(); // true = recovered; false = spawn failed (Crashed), caller must Deprovision() + cleanup
private:
RwLock* m_Lock = nullptr;
@@ -136,6 +141,7 @@ private:
[[nodiscard]] bool HibernateLocked();
[[nodiscard]] bool WakeLocked();
+ [[nodiscard]] bool RecoverCrashedLocked(); // true = recovered (Provisioned); false = spawn failed (Crashed)
void UpdateMetricsLocked();