mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-22 21:32:31 +00:00
Make improvements to locking
This change makes pthread_mutex_lock() as fast as _spinlock() by default. Thread instability issues on NetBSD have been resolved. Improvements made to gdtoa thread code. Crash reporting will now synchronize between threads in a slightly better way.
This commit is contained in:
parent
25041b8026
commit
d5312b60f7
60 changed files with 890 additions and 629 deletions
|
@ -17,6 +17,7 @@
|
|||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/calls/calls.h"
|
||||
#include "libc/runtime/internal.h"
|
||||
#include "libc/stdio/stdio.h"
|
||||
#include "libc/testlib/ezbench.h"
|
||||
#include "libc/testlib/testlib.h"
|
||||
|
@ -63,11 +64,15 @@ TEST(fgetc, testUnbuffered) {
|
|||
}
|
||||
|
||||
BENCH(fputc, bench) {
|
||||
__enable_tls();
|
||||
__enable_threads();
|
||||
FILE *f;
|
||||
ASSERT_NE(NULL, (f = fopen("/dev/null", "w")));
|
||||
EZBENCH2("fputc", donothing, fputc('E', f));
|
||||
flockfile(f);
|
||||
flockfile(f);
|
||||
EZBENCH2("fputc_unlocked", donothing, fputc_unlocked('E', f));
|
||||
funlockfile(f);
|
||||
funlockfile(f);
|
||||
fclose(f);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue