Skip to content

Commit 0e63157

Browse files
authored
Remove timeout slicing from pthread_barrier_wait. NFC (#26847)
In line with commit ee036b7.
1 parent a332ead commit 0e63157

1 file changed

Lines changed: 3 additions & 15 deletions

File tree

system/lib/libc/musl/src/thread/pthread_barrier_wait.c

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -87,26 +87,14 @@ int pthread_barrier_wait(pthread_barrier_t *b)
8787
while (spins-- && !inst->finished)
8888
a_spin();
8989
a_inc(&inst->finished);
90-
#ifdef __EMSCRIPTEN__
91-
int is_runtime_thread = emscripten_is_main_runtime_thread();
9290
while (inst->finished == 1) {
93-
if (is_runtime_thread) {
94-
int e;
95-
do {
96-
// Main runtime thread may need to run proxied calls, so sleep in very small slices to be responsive.
97-
e = emscripten_futex_wait(&inst->finished, 1, 1);
98-
} while (e == -ETIMEDOUT);
99-
} else {
100-
// Can wait in one go.
101-
emscripten_futex_wait(&inst->finished, 1, INFINITY);
102-
}
103-
}
91+
#ifdef __EMSCRIPTEN__
92+
emscripten_futex_wait(&inst->finished, 1, INFINITY);
10493
#else
105-
while (inst->finished == 1) {
10694
__syscall(SYS_futex,&inst->finished,FUTEX_WAIT|FUTEX_PRIVATE,1,0) != -ENOSYS
10795
|| __syscall(SYS_futex,&inst->finished,FUTEX_WAIT,1,0);
108-
}
10996
#endif
97+
}
11098
return PTHREAD_BARRIER_SERIAL_THREAD;
11199
}
112100

0 commit comments

Comments
 (0)