• src/sbbs3/main.cpp

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Wed Dec 31 01:48:10 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/70480dcee4378c21be0ca536
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Add some passthru thread debug log messages

    To hopefully help identify the cause of issue #1038

    The theory being that the client socket was disconnected while running an external program (sexyz in this case) and this check at the end of external() (the *nix version) might have a race condition with the passthru thread terminating due to disconnection as well:
    if (!(mode & EX_STDIN)) {
    if (passthru_thread_running)
    passthru_socket_activate(false);
    else
    pthread_mutex_unlock(&input_thread_mutex);
    }
    in which case it would try to unlock the input_thread_mutex that it did not own. I'm not clear why that would cause the pthread_mutex_destroy() call to fail (on input_thread_mutex) but maybe it does.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Thu Jan 1 22:32:06 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7e7db957384647c44958d0cb
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    When upgrading a legacy time.dab to new time.ini format, ignore unreadables

    It's possible the configuration was upgraded (e.g. by update.js) before any timed events have run, so the time.dab could be short. Just zero-initialize (and don't log any errors) if there's trouble reading a legacy timestamp from time.dab or qnet.dab.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net