From 1671283f1a2f6a5911904aa66f16ad216b05d99d Mon Sep 17 00:00:00 2001 From: Justine Tunney Date: Thu, 15 Aug 2024 23:54:14 -0700 Subject: [PATCH] Avoid clobbering errno --- third_party/dlmalloc/threaded.inc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/third_party/dlmalloc/threaded.inc b/third_party/dlmalloc/threaded.inc index 7c7253461..f6664b653 100644 --- a/third_party/dlmalloc/threaded.inc +++ b/third_party/dlmalloc/threaded.inc @@ -24,6 +24,7 @@ #include "libc/runtime/runtime.h" #include "libc/thread/thread.h" #include "libc/thread/threads.h" +#include "libc/errno.h" #include "third_party/dlmalloc/dlmalloc.h" #if !FOOTERS || !MSPACES @@ -102,8 +103,10 @@ static mstate get_arena(void) { if (n == 50) n = 0; if (!n) { + int e = errno; i = sched_getcpu(); if (i == -1) { + errno = e; i = atomic_fetch_add_explicit(&assign, 1, memory_order_relaxed); i %= g_cpucount; }