Call thread finalizers on exit()

While we don't call POSIX thread key destructors from exit(), we do need
to call these, since C++ uses it for TLS object destructors.

See #1076
This commit is contained in:
Justine Tunney 2024-01-08 11:45:02 -08:00
parent 07db3004d6
commit 81ce2e4cbc
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
5 changed files with 56 additions and 22 deletions

View file

@ -52,6 +52,7 @@ THIRD_PARTY_LIBCXXABI_TEST_SRCS = \
third_party/libcxxabi/test/test_guard.pass.cc \
third_party/libcxxabi/test/test_vector1.pass.cc \
third_party/libcxxabi/test/test_vector2.pass.cc \
third_party/libcxxabi/test/thread_local_destruction_order.pass.cc \
third_party/libcxxabi/test/test_vector3.pass.cc \
third_party/libcxxabi/test/uncaught_exception.pass.cc \
third_party/libcxxabi/test/uncaught_exceptions.pass.cc \
@ -67,10 +68,6 @@ THIRD_PARTY_LIBCXXABI_TEST_SRCS = \
THIRD_PARTY_LIBCXXABI_TEST_SRCS_TOOSLOW_COSMO = \
third_party/libcxxabi/test/guard_threaded_test.pass.cc \
# TODO: Add this test when #1073 is fixed
THIRD_PARTY_LIBCXXABI_TEST_SRCS_FAILING_COSMO = \
third_party/libcxxabi/test/thread_local_destruction_order.pass.cc
THIRD_PARTY_LIBCXXABI_TEST_SRCS_FAILING_GCC = \
third_party/libcxxabi/test/catch_array_01.pass.cc \
third_party/libcxxabi/test/catch_function_01.pass.cc \