wireshark/include
Guy Harris db27fb777a exceptions: make the exception handler stack per-thread.
This prevents the weird failures I saw on macOS in #17856; instead, it
should fail on *all* platforms with

    Unhandled exception ("epan/proto.c:8800: failed assertion "DISSECTOR_ASSERT_NOT_REACHED"", group=1, code=6)

(which it does on macOS 11.6/Xcode 12.5.1 and Windows 10/VS 2019
16.11.8; according to

https://en.wikipedia.org/w/index.php?title=Thread-local_storage&oldid=1064900318#C_and_C++

the major UN*X C compilers support __thread and the major Windows C
compilers support __declspec(thread).).

@jvalverde: on branches that require C11/C++11 support, we could perhaps
just use _Thread_local for C and thread_local for C++.  Note that
<thread.h> is optional in C11, and macOS 11.6/Xcode 12.5.1 does not
appear to include it.)

This does not *fix* the aforementioned issue; to do *that* we need to do
TRY in the register-dissectors thread code.  I'm committing this
separately because it fixes a bug in our exception package that could
cause all sorts of randomness now and in the future - what we're doing
now is Just Wrong.

(Yes, there's code to support per-thread exception handler stacks *on
platforms with pthreads*, but this is simpler *and* also works on
Windows.)
2022-01-11 05:00:42 +00:00
..
wireshark.h Add ws_version.h to wireshark.h 2021-12-21 23:00:04 +00:00
ws_attributes.h exceptions: make the exception handler stack per-thread. 2022-01-11 05:00:42 +00:00
ws_compiler_tests.h
ws_diag_control.h
ws_log_defs.h wslog: Add WS_DEBUG_HERE() macro 2021-12-29 15:21:46 +00:00
ws_posix_compat.h Add a ws_posix_compat.h header 2021-12-21 01:30:06 +00:00
ws_symbol_export.h Add files with WS_DLL_PUBLIC to Doxygen 2021-11-29 21:27:45 +00:00