#include "hiisi.h" #include "heload/heload.h" #include #include #include #include #include #include #include std::atomic reload_requested(false); void reload_signal_handler(int) { reload_requested = true; } void reload_modules() { if (he_reload_module("libhiisi-engine.so") != 0) { fprintf(stderr, "Failed to reload libhiisi-engine.so. Exiting.\n"); exit(EXIT_FAILURE); } } int main(int argc, char **argv) { signal(SIGUSR1, reload_signal_handler); if (he_init() != 0) { fprintf(stderr, "Failed to initialize heload. Exiting.\n"); exit(EXIT_FAILURE); } he_print_module_infos(); hiisi::EngineData state; hiisi::init(&state, argc, argv); while (hiisi::event(&state)) { hiisi::iterate(&state); if (reload_requested) { reload_modules(); reload_requested = false; } } he_deinit(); return 0; }