• src/xpdev/threadwrap.h

    From Deuc¿@VERT to Git commit to main/sbbs/master on Wed Feb 17 23:25:51 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/b4e6d685f82a804c779e0df6
    Modified Files:
    src/xpdev/threadwrap.h
    Log Message:
    #define protected_*_value(val) atomic_load(&val)
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Feb 20 17:31:34 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/f6b1317888c77f7b46dbce83
    Modified Files:
    src/xpdev/threadwrap.h
    Log Message:
    Use parens for Win32 protected_*int macro args

    for better errors/warnings from the compiler when misued.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Feb 22 17:59:04 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/474fa66ed8abaeadbd1e9815
    Modified Files:
    src/xpdev/threadwrap.h
    Log Message:
    Gotta define __STDC_NO_ATOMICS__ for MSVC

    Even though https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-160 says they define it for C compiles, apparently they don't bother for C++. <shrug>
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Tue Mar 2 09:54:52 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/f3219fe50193f0401dec7f51
    Modified Files:
    src/xpdev/threadwrap.h
    Log Message:
    Re-enable atomics on FreeBSD :|

    The various __GNUC__ macros are defined in other compilers and
    indicate support for a C language standard and can't be used to
    detect if gcc the compiler is being used.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Feb 19 14:03:13 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/3d0d525c7da0d33b4f53547b
    Modified Files:
    src/xpdev/threadwrap.h
    Log Message:
    Use MinGW32 types for pthread_t and pthread_mutex_t

    uintptr_t should be the same as a DWORD on Win32,
    and CRITICAL_SECTION can be stored in an inptr_t as well.

    This should work fine, and allow more build environments to be happy.
    This is generally caused by new C++ standards having thread support
    in the standard library, so wrappers getting pushed deeper in.

    At some pointer, this should be redone with standard threads, but
    now is not the time.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Feb 20 16:53:52 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/b3c536e4e065801ed59d9c42
    Modified Files:
    src/xpdev/threadwrap.h
    Log Message:
    pthread_mutex_t is a CRITICAL_SECTION (not a pointer) on Win32

    Partially revert Deuce's commit b4bc9c9759e6f34c272501e024

    This explains the EAccessViolation (stack corruption during sbbs startup) that sysops have reported when using the latest nightly builds.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net