quakeforge/nq
Bill Currie 1a83fe21c1 [util] Add Sys_setjmp and Sys_longjmp
Host_Error and Host_EndGame use setjmp/longjmp to implement an exception
of sorts, but this messes with tracy's state even with cleanup
attributes. However, it turns out that those cleanup attributes are
exactly how gcc implements C++ destructors, and so the standard Unwind
api (part of libgcc) respects them (so long as -fexceptions is enabled
for C). Thus... replace longjmp with an implementation that uses Unwind
to unwind the stack and call the cleanup functions as needed. This is
actually important for more than just tracy as the cleanup attributed
vars can be thread locks.
2023-12-01 12:13:26 +09:00
..
include [util] Add Sys_setjmp and Sys_longjmp 2023-12-01 12:13:26 +09:00
source [util] Add Sys_setjmp and Sys_longjmp 2023-12-01 12:13:26 +09:00
Makemodule.am [build] Move to non-recursive make 2020-06-25 11:35:37 +09:00