Skip to content
Snippets Groups Projects
  • rswindell's avatar
    cdef2d33
    Fix the root-cause of the high-CPU utlization on server recycle problem: · cdef2d33
    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.
    cdef2d33
    History
    Fix the root-cause of the high-CPU utlization on server recycle problem:
    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.