// relaunch.hpp - Reinici en calent del proces (execv) // © 2026 JailDesigner // // Helper desacoblat per a permetre que el menu de servei demani un reinici // sense conèixer Director ni main.cpp. Patro: // // main() → Relaunch::setArgv(argc, argv) (a l'arrencada) // ServiceMenu → Relaunch::request() (en activar REINICIAR) // main() → Relaunch::execIfRequested() (a SDL_AppQuit) // // L'execv() reemplaca el proces actual: si torna, ha fallat. A EMSCRIPTEN // no es pot reiniciar; isRequested() seguira dient true pero execIfRequested // sera no-op. #pragma once namespace System::Relaunch { // Emmagatzema l'argv original. Cal cridar-ho una vegada des de main. void setArgv(int argc, char** argv); // Demana un reinici (no actua immediatament; nomes marca el flag). void request(); // Consulta del flag. [[nodiscard]] auto isRequested() -> bool; // Si hi ha reinici demanat i tenim argv valid, fa execv. En cas d'exit // no torna. Si execv falla, registra l'error i torna; el caller hauria // de sortir normalment. void execIfRequested(); } // namespace System::Relaunch