• src/xpdev/threadwrap.h

    From Deuc╨╡ to Git commit to main/sbbs/master on Wednesday, February 17, 2021 23:25:51
    https://gitlab.synchro.net/main/sbbs/-/commit/b4e6d685f82a804c779e0df6
    Modified Files:
    src/xpdev/threadwrap.h
    Log Message:
    #define protected_*_value(val) atomic_load(&val)
  • From Rob Swindell to Git commit to main/sbbs/master on Saturday, February 20, 2021 17:31:34
    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.
  • From Rob Swindell to Git commit to main/sbbs/master on Monday, February 22, 2021 17:59:04
    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>
  • From Deuc╨╡ to Git commit to main/sbbs/master on Tuesday, March 02, 2021 09:54:52
    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.
  • From Deuc╨╡ to Git commit to main/sbbs/master on Saturday, February 19, 2022 14:03:13
    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.
  • From Rob Swindell to Git commit to main/sbbs/master on Sunday, February 20, 2022 16:53:52
    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.