Make the unwind cache tread-safe by declaring it thread_local. Solves
authorotto <otto@openbsd.org>
Sat, 20 Feb 2021 19:03:28 +0000 (19:03 +0000)
committerotto <otto@openbsd.org>
Sat, 20 Feb 2021 19:03:28 +0000 (19:03 +0000)
segfaults seen on exception handling.  ok kettenis@

gnu/llvm/libunwind/src/UnwindCursor.hpp

index 31097b4..8eb8d18 100644 (file)
@@ -75,7 +75,7 @@ extern "C" _Unwind_Reason_Code __libunwind_seh_personality(
 
 namespace libunwind {
 
-static UnwindInfoSectionsCache uwis_cache;
+static thread_local UnwindInfoSectionsCache uwis_cache;
 
 #if defined(_LIBUNWIND_SUPPORT_DWARF_UNWIND)
 /// Cache of recently found FDEs.