mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-25 07:19:02 +00:00
Use simple locks in dlmalloc
This commit is contained in:
parent
bcf268adf8
commit
bed77186c3
3 changed files with 3 additions and 14 deletions
1
third_party/dlmalloc/dlmalloc.c
vendored
1
third_party/dlmalloc/dlmalloc.c
vendored
|
@ -23,7 +23,6 @@
|
|||
#include "libc/thread/thread.h"
|
||||
#include "libc/thread/tls.h"
|
||||
#include "third_party/dlmalloc/vespene.internal.h"
|
||||
#include "third_party/nsync/mu.h"
|
||||
// clang-format off
|
||||
|
||||
#define FOOTERS 0
|
||||
|
|
12
third_party/dlmalloc/locks.inc
vendored
12
third_party/dlmalloc/locks.inc
vendored
|
@ -30,11 +30,7 @@
|
|||
|
||||
*/
|
||||
|
||||
#ifdef TINY
|
||||
#define MLOCK_T atomic_uint
|
||||
#else
|
||||
#define MLOCK_T nsync_mu
|
||||
#endif
|
||||
|
||||
static int malloc_wipe(MLOCK_T *lk) {
|
||||
bzero(lk, sizeof(*lk));
|
||||
|
@ -43,23 +39,15 @@ static int malloc_wipe(MLOCK_T *lk) {
|
|||
|
||||
static int malloc_lock(MLOCK_T *lk) {
|
||||
if (!__threaded) return 0;
|
||||
#ifdef TINY
|
||||
while (atomic_exchange_explicit(lk, 1, memory_order_acquire)) {
|
||||
pthread_pause_np();
|
||||
}
|
||||
#else
|
||||
nsync_mu_lock(lk);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int malloc_unlock(MLOCK_T *lk) {
|
||||
if (!__threaded) return 0;
|
||||
#ifdef TINY
|
||||
atomic_store_explicit(lk, 0, memory_order_release);
|
||||
#else
|
||||
nsync_mu_unlock(lk);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ make -j8 m=x86_64 \
|
|||
o/x86_64/tool/build/fixupobj.com.dbg \
|
||||
o/x86_64/tool/build/zipcopy.com.dbg \
|
||||
o/x86_64/tool/build/mkdeps.com.dbg \
|
||||
o/x86_64/tool/build/zipobj.com.dbg \
|
||||
o/x86_64/tool/build/apelink.com.dbg \
|
||||
o/x86_64/tool/build/pecheck.com.dbg \
|
||||
o/x86_64/third_party/make/make.com.dbg \
|
||||
|
@ -49,6 +50,7 @@ make -j8 m=aarch64 \
|
|||
o/aarch64/tool/build/fixupobj.com.dbg \
|
||||
o/aarch64/tool/build/zipcopy.com.dbg \
|
||||
o/aarch64/tool/build/mkdeps.com.dbg \
|
||||
o/aarch64/tool/build/zipobj.com.dbg \
|
||||
o/aarch64/tool/build/apelink.com.dbg \
|
||||
o/aarch64/tool/build/pecheck.com.dbg \
|
||||
o/aarch64/third_party/make/make.com.dbg \
|
||||
|
@ -114,7 +116,7 @@ cp -af tool/cosmocc/bin/* "$OUTDIR/bin/"
|
|||
cp -f o/x86_64/ape/ape.elf "$OUTDIR/bin/"
|
||||
cp -f o/x86_64/ape/ape.macho "$OUTDIR/bin/"
|
||||
cp -f o/aarch64/ape/ape.elf "$OUTDIR/bin/ape.aarch64"
|
||||
for x in assimilate march-native mktemper fixupobj zipcopy apelink pecheck mkdeps; do
|
||||
for x in assimilate march-native mktemper fixupobj zipcopy apelink pecheck mkdeps zipobj; do
|
||||
o//tool/build/apelink.com \
|
||||
-l o/x86_64/ape/ape.elf \
|
||||
-l o/aarch64/ape/ape.elf \
|
||||
|
|
Loading…
Add table
Reference in a new issue