// // D_DoomLoop // void D_DoomLoop (void) { while (1) { try { SV_RunTics (); // will run at least one tic } catch (CRecoverableError &error) { Printf (PRINT_HIGH, "ERROR: %s\n", error.GetMessage().c_str()); Printf (PRINT_HIGH, "sleeping for 10 seconds before map reload..."); // denis - drop clients SV_SendDisconnectSignal(); // denis - sleep to conserve server resources (in case of recurring problem) I_WaitForTic(I_GetTime() + 1000*10/TICRATE); // denis - reload with current settings G_ChangeMap (); // denis - todo - throw I_FatalError if this keeps happening } } }
// // D_DoomLoop // void D_DoomLoop (void) { while (1) { try { D_RunTics(SV_RunTics, SV_DisplayTics); } catch (CRecoverableError &error) { Printf (PRINT_HIGH, "ERROR: %s\n", error.GetMsg().c_str()); Printf (PRINT_HIGH, "sleeping for 10 seconds before map reload..."); // denis - drop clients SV_SendDisconnectSignal(); // denis - sleep 10 seconds to conserve server resources (in case of recurring problem) I_Sleep(10 * 1000LL * 1000LL * 1000LL); // denis - reload with current settings G_ChangeMap (); // denis - todo - throw I_FatalError if this keeps happening } } }
void STACK_ARGS I_Quit (void) { has_exited = 1; /* Prevent infinitely recursive exits -- killough */ #ifdef WIN32 timeEndPeriod (TimerPeriod); #endif G_ClearSnapshots (); SV_SendDisconnectSignal(); CloseNetwork (); }