+ return process->restart();
+}
+
+/** @ingroup m_process_management
+ * @brief This process will be terminated automatically when the last non-daemon process finishes
+ */
+XBT_PUBLIC(void) MSG_process_daemonize(msg_process_t process)
+{
+ simgrid::simix::kernelImmediate([process]() { process->getImpl()->daemonize(); });
+}
+
+/** @ingroup m_process_management
+ * @brief Take an extra reference on that process to prevent it to be garbage-collected
+ */
+XBT_PUBLIC(void) MSG_process_ref(msg_process_t process)
+{
+ intrusive_ptr_add_ref(process);
+}
+/** @ingroup m_process_management
+ * @brief Release a reference on that process so that it can get be garbage-collected
+ */
+XBT_PUBLIC(void) MSG_process_unref(msg_process_t process)
+{
+ intrusive_ptr_release(process);
+}