60 | | * The blocking '''remote_barrier_wait()''' function returns only when all expected threads (defined by the remote_barrier_create() function) reach the barrier. It implement a descheduling policy: when a thread is not the last expected thread, it register in he barrier waiting queue and blocks on the THREAD_BLOCKED_USERSYNC condition. The last thread reset the barrier and unblocks all waiting threads. |
| 60 | * The blocking '''remote_barrier_wait()''' function returns only when all expected threads reach the barrier. It implements a descheduling policy: when a thread is not the last expected thread, it register in he barrier waiting queue and blocks on the THREAD_BLOCKED_USERSYNC condition. The last thread reset the barrier and unblocks all waiting threads. |
| 61 | |
| 62 | N.B. ''In the current implementation, the barrier is physically implemented in the reference cluster, creating contention when the |
| 63 | number of threads is large. It exists a distributed implementation, where the barrier is implemented as a quad-tree, entirely in user space (no system calls)''. |