-
rswindell authored
How did startup->sem_chk_freq get set (back) to 0 in the first place? The reason: the startup struct sanitization only occured when the various server threads were first started. When recycled, the server would call back to the original caller (e.g. sbbscon) which may (and did) re-read the sbbs.ini file, which could have SemCheckFrequency set to 0 (or missing) and the sanitization did not happen again (so a 0 value was used in select() calls, resuilting in high CPU utilization for several threads). So now, all startup struct sanitization occurs inside the init/recycle loop and sem_chk_freq should never revert to 0 again. This was the main bug.
rswindell authoredHow did startup->sem_chk_freq get set (back) to 0 in the first place? The reason: the startup struct sanitization only occured when the various server threads were first started. When recycled, the server would call back to the original caller (e.g. sbbscon) which may (and did) re-read the sbbs.ini file, which could have SemCheckFrequency set to 0 (or missing) and the sanitization did not happen again (so a 0 value was used in select() calls, resuilting in high CPU utilization for several threads). So now, all startup struct sanitization occurs inside the init/recycle loop and sem_chk_freq should never revert to 0 again. This was the main bug.