mirror of
git://git.musl-libc.org/musl
synced 2025-02-05 21:41:50 +00:00
6016457011
this implementation is rather heavy-weight, but it's the first solution i've found that's actually correct. all waiters actually wait twice at the barrier so that they can synchronize exit, and they hold a "vm lock" that prevents changes to virtual memory mappings (and blocks pthread_barrier_destroy) until all waiters are finished inspecting the barrier. thus, it is safe for any thread to destroy and/or unmap the barrier's memory as soon as pthread_barrier_wait returns, without further synchronization. |
||
---|---|---|
.. | ||
madvise.c | ||
mlock.c | ||
mlockall.c | ||
mmap.c | ||
mprotect.c | ||
mremap.c | ||
msync.c | ||
munlock.c | ||
munlockall.c | ||
munmap.c | ||
posix_madvise.c | ||
shm_open.c | ||
shm_unlink.c |