“aadb84a54799f328e3b7b2af4dd241bc4f33f9e1”上不存在“git@gitcode.net:openeuler/libvirt.git”
  • R
    process-shared barrier support, based on discussion with bdonlan · 60164570
    Rich Felker 提交于
    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.
    60164570
pthread_impl.h 2.6 KB