Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use RAII for sthread_enable/disable.
[simgrid.git] / src / sthread / sthread.h
index cf96500..cf2b477 100644 (file)
@@ -99,4 +99,15 @@ void sthread_access_end(void* objaddr, const char* objname, const char* file, in
 }
 #endif
 
+#if defined(__cplusplus)
+// Helper class using RAII to enable/disable sthread
+class SThreadGuard {
+public:
+  SThreadGuard() { sthread_enable(); }
+  SThreadGuard(const SThreadGuard&) = delete;
+  SThreadGuard& operator=(const SThreadGuard&) = delete;
+  ~SThreadGuard() { sthread_disable(); }
+};
+#endif
+
 #endif