From 31e8a9ff5c97abdee6b0919efc5a8f9d21eaa663 Mon Sep 17 00:00:00 2001 From: klzgrad Date: Mon, 13 May 2024 19:08:53 +0800 Subject: [PATCH] musl: allocator: Fix hanging in qemu-user It causes hanging in pthread_getattr_np() under qemu-user, see https://www.openwall.com/lists/musl/2017/06/15/9. --- src/base/allocator/partition_alloc_support.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/base/allocator/partition_alloc_support.cc b/src/base/allocator/partition_alloc_support.cc index 756e425610..29f5166440 100644 --- a/src/base/allocator/partition_alloc_support.cc +++ b/src/base/allocator/partition_alloc_support.cc @@ -1117,8 +1117,12 @@ void PartitionAllocSupport::ReconfigureAfterFeatureListInit( UmaHistogramCounts100("Memory.PartitionAlloc.PartitionRoot.ExtrasSize", int(extras_size)); +#if !defined(__MUSL__) + // This call causes hanging in pthread_getattr_np() under qemu-user, see + // https://www.openwall.com/lists/musl/2017/06/15/9. partition_alloc::internal::StackTopRegistry::Get().NotifyThreadCreated( partition_alloc::internal::GetStackTop()); +#endif allocator_shim::internal::PartitionAllocMalloc::Allocator() ->EnableThreadCacheIfSupported();