Files
Aurora.3/code/__defines/process_scheduler.dm
Lohikar 0c59930261 Reduce server freezes during large explosions (#1326)
Moved explosion calculations into a process that processes a queue of explosions with SCHECKs in areas with significant processing.
Significantly reduces server freezes during large explosions, and almost completely nullifies them for small ones.

Likely subtly changes how explosions behave.
2016-12-28 01:16:30 +02:00

19 lines
676 B
Plaintext

// Process status defines
#define PROCESS_STATUS_IDLE 1
#define PROCESS_STATUS_QUEUED 2
#define PROCESS_STATUS_RUNNING 3
#define PROCESS_STATUS_MAYBE_HUNG 4
#define PROCESS_STATUS_PROBABLY_HUNG 5
#define PROCESS_STATUS_HUNG 6
// Process time thresholds
#define PROCESS_DEFAULT_HANG_WARNING_TIME 300 // 30 seconds
#define PROCESS_DEFAULT_HANG_ALERT_TIME 600 // 60 seconds
#define PROCESS_DEFAULT_HANG_RESTART_TIME 900 // 90 seconds
#define PROCESS_DEFAULT_SCHEDULE_INTERVAL 50 // 50 ticks
#define PROCESS_DEFAULT_TICK_ALLOWANCE 20 // 20% of one tick
// SCHECK macros
// This references src directly to work around a weird bug with try/catch
#define SCHECK sleepCheck()