Just as with a real-world gate, barriers may be configured to
be manually opened or automatically opened. All tasks
calling the rtems_barrier_wait
directive
will block until a controlling task invokes the
rtems_barrier_release
directive.
Automatic barriers are created with a limit to the number of
tasks which may simultaneously block at the barrier. Once
this limit is reached, all of the tasks are released. For
example, if the automatic limit is ten tasks, then the first
nine tasks calling the rtems_barrier_wait
directive
will block. When the tenth task calls the
rtems_barrier_wait
directive, the nine
blocked tasks will be released and the tenth task returns
to the caller without blocking.
Copyright © 1988-2007OAR Corporation