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-2004 OAR Corporation