pthread_barrier.h¶
Synchronization barriers.
Note
Do not include this header file directly, but pthread.h.
-
PTHREAD_PROCESS_SHARED¶ Share the structure with child processes (default).
1
(0)
Note
RIOT is a single-process OS. Setting the value of
pshareddoes not change anything.
-
PTHREAD_PROCESS_PRIVATE¶ Don’t share the structure with child processes.
1
(1)
Note
RIOT is a single-process OS. Setting the value of
pshareddoes not change anything.
-
struct pthread_barrier_waiting_node
pthread_barrier_waiting_node_t¶ Internal structure to store the list of waiting threads.
-
int
pthread_barrier_init(pthread_barrier_t * barrier, const pthread_barrierattr_t * attr, unsigned int count)¶ Initializes a pthread_barrier_t.
Parameters
barrier: Datum to initialize attr: (unused) count: Number of thread to wait for Return values
- 0, the invocation cannot fail
-
int
pthread_barrier_destroy(pthread_barrier_t * barrier)¶ Destroys a pthread_barrier_t.
To use the barrier again you will need to call
pthread_barrier.h::pthread_barrier_init()again. Destroying a barrier while threads are currently waiting for it causes indefined behavior.Parameters
barrier: Barrier to destoy Return values
- 0, the invocation cannot fail
-
int
pthread_barrier_wait(pthread_barrier_t * barrier)¶ Waiting on a synchronization barrier.
The barrier need to be initialized with
pthread_barrier.h::pthread_barrier_init().Parameters
barrier: Barrier to wait for Return values
- 0, the invocation cannot fail
-
int
pthread_barrierattr_init(pthread_barrierattr_t * attr)¶ Initialize a pthread_barrierattr_t.
A zeroed out datum is initialized.
Parameters
attr: Datum to initialize. Return values
- 0, the invocation cannot fail
-
int
pthread_barrierattr_destroy(pthread_barrierattr_t * attr)¶ Destroy a pthread_barrierattr_t.
This function does nothing.
Parameters
attr: Datum to destroy Return values
- 0, the invocation cannot fail
-
int
pthread_barrierattr_getpshared(const pthread_barrierattr_t * attr, int * pshared)¶ Returns whether the barrier attribute was set to be shared.
Parameters
attr: Barrier attribute to read pshared: The value previously stored with pthread_barrier.h::pthread_barrierattr_setpshared().Return values
- 0, the invocation cannot fail
-
int
pthread_barrierattr_setpshared(pthread_barrierattr_t * attr, int pshared)¶ Set if the barrier should be shared with child processes.
Since RIOT is a single process OS,
pthread_barrier.h::pthread_barrier_init()wil ignore the value.Parameters
attr: Attribute set for pthread_barrier.h::pthread_barrier_init()pshared: Either pthread_barrier.h::PTHREAD_PROCESS_PRIVATEorpthread_barrier.h::PTHREAD_PROCESS_SHAREDReturn values
- 0, the invocation cannot fail
-
struct
pthread_barrier_waiting_node¶ Internal structure to store the list of waiting threads.
-
struct pthread_barrier_waiting_node *
next¶ The next waiting thread.
-
kernel_types.h::kernel_pid_tpid¶ The current thread to wake up.
-
int
cont¶ 0 = spurious wake up, 1 = wake up
-
struct pthread_barrier_waiting_node *
-
struct
pthread_barrier_t¶ A synchronization barrier.
Initialize with
pthread_barrier.h::pthread_barrier_init(). For a zeroed out datum you do not need to call the initializer, it is enough to setpthread_barrier.h::pthread_barrier_t::count.-
struct pthread_barrier_waiting_node *
next¶ The first waiting thread.
-
int
count¶ Wait for N more threads before waking everyone up.
-
struct pthread_barrier_waiting_node *
-
struct
pthread_barrierattr_t¶ Details for a pthread_barrier_t.
RIOT does not need this structure, because it is a single process OS. This is only here to POSIX compatibility.
-
int
pshared¶ See
pthread_barrier.h::pthread_barrierattr_setpshared()andpthread_barrier.h::pthread_barrierattr_getpshared().
-
int