Re: [PATCH 1/2] barrier: Remove leftover semaphore remnants

2019-10-11 Thread Martin Erik Werner
On Wed, 2019-10-02 at 17:00 -0500, Joel Sherrill wrote:
> 
> 
> On Wed, Oct 2, 2019 at 2:52 PM Martin Erik Werner <
> martinerikwer...@gmail.com> wrote:
(...)
> > On Tue, 2019-10-01 at 18:02 -0500, Joel Sherrill wrote:
> > > 
> > > 
> > > On Tue, Oct 1, 2019, 5:07 PM Gedare Bloom 
> > wrote:
> > > > On Tue, Oct 1, 2019 at 3:53 PM Gedare Bloom 
> > > > wrote:
> > > > >
> > > > > On Wed, Sep 4, 2019 at 3:36 PM Martin Erik Werner
> > > > >  wrote:
> > > > > >
> > > > > > Remove various incorrect references to "lock" and "obtain"
> > and
> > > > to an
> > > > > > option set which is not part of the barrier interface.
> > > > > >
> > > > > > It looks like the barrier documentation was started based
> > on a
> > > > copy of
> > > > > > the semaphore documentation and these things are surviving
> > > > remnants.
> > > > > >
> > > > > > Also remove an unfinished sentence in the barrier wait
> > > > description,
> > > > > > since the intended information is already provided in the
> > under
> > > > the NOTE
> > > > > > label.
> > > > > Thanks for your contribution!  I have a few minor comments:
> > > > >
> > > > > > ---
> > > > > >  c-user/barrier_manager.rst | 38 +++---
> > 
> > > > 
> > > > > >  1 file changed, 7 insertions(+), 31 deletions(-)
> > > > > >
> > > > > > diff --git a/c-user/barrier_manager.rst b/c-
> > > > user/barrier_manager.rst
> > > > > > index b0bf3bf..e5d69b0 100644
> > > > > > --- a/c-user/barrier_manager.rst
> > > > > > +++ b/c-user/barrier_manager.rst
> > > > > > @@ -324,8 +324,7 @@ NOTES:
> > > > > >
> > > > > >  .. _rtems_barrier_wait:
> > > > > >
> > > > > > -.. index:: obtain a barrier
> > > > > > -.. index:: lock a barrier
> > > > > > +.. index:: wait at a barrier
> > > > > >  .. index:: rtems_barrier_wait
> > > > > >
> > > > > >  BARRIER_WAIT - Wait at a barrier
> > > > > > @@ -356,14 +355,11 @@ DIRECTIVE STATUS CODES:
> > > > > >
> > > > > >  DESCRIPTION:
> > > > > >
> > > > > > -This directive acquires the barrier specified by
> > ``id``. 
> > > > The
> > > > > > -``RTEMS_WAIT`` and ``RTEMS_NO_WAIT`` components of the
> > > > options parameter
> > > > > > -indicate whether the calling task wants to wait for
> > the
> > > > barrier to become
> > > > > > -available or return immediately if the barrier is not
> > > > currently available.
> > > > > > -With either ``RTEMS_WAIT`` or ``RTEMS_NO_WAIT``, if
> > the
> > > > current barrier
> > > > > > -count is positive, then it is decremented by one and
> > the
> > > > barrier is
> > > > > > -successfully acquired by returning immediately with a
> > > > successful return
> > > > > > -code.
> > > > > > +This directive waits at the barrier specified by
> > ``id``. 
> > > > The timeout
> > > > > > +parameter specifies the maximum interval the calling
> > task
> > > > is willing to be
> > > > > > +blocked waiting for the barrier.  If it is set to
> > > > ``RTEMS_NO_TIMEOUT``,
> > > > > > +then the calling task will wait forever.  If the
> > barrier
> > > > is available or
> > > > > 1. "will wait forever" -> "will wait forever if it doesn't
> > get
> > > > > released" or something more precise, even just "may wait
> > forever"
> > > 
> > > Will wait until the barrier is released/opened. Then add there is
> > no
> > > option for no wait as found in other APIs. 
> > 
> > Ok, so
> > "If it is set to ``RTEMS_NO_TIMEOUT``, then the calling task will
> > wait
> > until the barrier is released."
> > ?
> > 
> > The whole "If the barrier is available or the ``RTEMS_NO_WAIT``
> > option
> > component is set, then the timeout is ignored." wording is another
> > semaphore leftover that I missed when moving things around.
> > 
> > I'm thinking I'll remove that whole sentence. replacing it with one
> > of
> > the following alternatives (or a mix thereof):
> > 
> > It is not possible to make the calling task return based on the
> > timeout
> > without wating for at least one clock tick.
> > 
> > There is no equivalent to the ``RTEMS_NO_WAIT`` option for this
> > directive,
> > hence the minimum timeout possible is one clock tick.
> > 
> > It is not possible to make the calling task return immediately
> > based on the
> > timeout, the minimum timeout is 1 clock tick.
> > 
> > The minimum timeout interval is one clock tick and it is
> > therefore not
> > possible to make the calling task return immediately based on
> > the timeout.
> > 
> > I'm still not particularly happy with any of them, but I'm a bit
> > stuck
> > for the precise wording.
> 
> How about starting with something like, "a barrier is always
> considered
> to be closed (e.g. unavailable) and, consequently, polling does not
> make
> sense. The barrier wait operation always blocks with the option of
> timeout."
> 
> When teaching the RTEMS class, I always highlight that Classic API 
> blocking operations are poll, block forever, or block with timeout.
> This
> is the sole exception. It is 

Re: [PATCH 1/2] barrier: Remove leftover semaphore remnants

2019-10-02 Thread Joel Sherrill
On Wed, Oct 2, 2019 at 2:52 PM Martin Erik Werner <
martinerikwer...@gmail.com> wrote:

> Thanks for the review! Discussion regarding suggested rewording and
> cleanup are inline below.
>
> One minor thing that I also noticed was in the background section there
> is a "cticket" which looks like a typo in "Similarly, cticket holders
> gather at the gates of arenas [...]". Unless it's some shorthand for
> concert-tickets that I'm unaware of? Unless it's intended I'll add that
> change to this patch set as well.
>
> On Tue, 2019-10-01 at 18:02 -0500, Joel Sherrill wrote:
> >
> >
> > On Tue, Oct 1, 2019, 5:07 PM Gedare Bloom  wrote:
> > > On Tue, Oct 1, 2019 at 3:53 PM Gedare Bloom 
> > > wrote:
> > > >
> > > > On Wed, Sep 4, 2019 at 3:36 PM Martin Erik Werner
> > > >  wrote:
> > > > >
> > > > > Remove various incorrect references to "lock" and "obtain" and
> > > to an
> > > > > option set which is not part of the barrier interface.
> > > > >
> > > > > It looks like the barrier documentation was started based on a
> > > copy of
> > > > > the semaphore documentation and these things are surviving
> > > remnants.
> > > > >
> > > > > Also remove an unfinished sentence in the barrier wait
> > > description,
> > > > > since the intended information is already provided in the under
> > > the NOTE
> > > > > label.
> > > > Thanks for your contribution!  I have a few minor comments:
> > > >
> > > > > ---
> > > > >  c-user/barrier_manager.rst | 38 +++---
> > > 
> > > > >  1 file changed, 7 insertions(+), 31 deletions(-)
> > > > >
> > > > > diff --git a/c-user/barrier_manager.rst b/c-
> > > user/barrier_manager.rst
> > > > > index b0bf3bf..e5d69b0 100644
> > > > > --- a/c-user/barrier_manager.rst
> > > > > +++ b/c-user/barrier_manager.rst
> > > > > @@ -324,8 +324,7 @@ NOTES:
> > > > >
> > > > >  .. _rtems_barrier_wait:
> > > > >
> > > > > -.. index:: obtain a barrier
> > > > > -.. index:: lock a barrier
> > > > > +.. index:: wait at a barrier
> > > > >  .. index:: rtems_barrier_wait
> > > > >
> > > > >  BARRIER_WAIT - Wait at a barrier
> > > > > @@ -356,14 +355,11 @@ DIRECTIVE STATUS CODES:
> > > > >
> > > > >  DESCRIPTION:
> > > > >
> > > > > -This directive acquires the barrier specified by ``id``.
> > > The
> > > > > -``RTEMS_WAIT`` and ``RTEMS_NO_WAIT`` components of the
> > > options parameter
> > > > > -indicate whether the calling task wants to wait for the
> > > barrier to become
> > > > > -available or return immediately if the barrier is not
> > > currently available.
> > > > > -With either ``RTEMS_WAIT`` or ``RTEMS_NO_WAIT``, if the
> > > current barrier
> > > > > -count is positive, then it is decremented by one and the
> > > barrier is
> > > > > -successfully acquired by returning immediately with a
> > > successful return
> > > > > -code.
> > > > > +This directive waits at the barrier specified by ``id``.
> > > The timeout
> > > > > +parameter specifies the maximum interval the calling task
> > > is willing to be
> > > > > +blocked waiting for the barrier.  If it is set to
> > > ``RTEMS_NO_TIMEOUT``,
> > > > > +then the calling task will wait forever.  If the barrier
> > > is available or
> > > > 1. "will wait forever" -> "will wait forever if it doesn't get
> > > > released" or something more precise, even just "may wait forever"
> >
> > Will wait until the barrier is released/opened. Then add there is no
> > option for no wait as found in other APIs.
>
> Ok, so
> "If it is set to ``RTEMS_NO_TIMEOUT``, then the calling task will wait
> until the barrier is released."
> ?
>
> The whole "If the barrier is available or the ``RTEMS_NO_WAIT`` option
> component is set, then the timeout is ignored." wording is another
> semaphore leftover that I missed when moving things around.
>
> I'm thinking I'll remove that whole sentence. replacing it with one of
> the following alternatives (or a mix thereof):
>
> It is not possible to make the calling task return based on the timeout
> without wating for at least one clock tick.
>
> There is no equivalent to the ``RTEMS_NO_WAIT`` option for this
> directive,
> hence the minimum timeout possible is one clock tick.
>
> It is not possible to make the calling task return immediately based
> on the
> timeout, the minimum timeout is 1 clock tick.
>
> The minimum timeout interval is one clock tick and it is therefore not
> possible to make the calling task return immediately based on the
> timeout.
>
> I'm still not particularly happy with any of them, but I'm a bit stuck
> for the precise wording.
>

How about starting with something like, "a barrier is always considered
to be closed (e.g. unavailable) and, consequently, polling does not make
sense. The barrier wait operation always blocks with the option of timeout."

When teaching the RTEMS class, I always highlight that Classic API
blocking operations are poll, block forever, or block with timeout. This
is the 

Re: [PATCH 1/2] barrier: Remove leftover semaphore remnants

2019-10-02 Thread Martin Erik Werner
Thanks for the review! Discussion regarding suggested rewording and
cleanup are inline below.

One minor thing that I also noticed was in the background section there
is a "cticket" which looks like a typo in "Similarly, cticket holders
gather at the gates of arenas [...]". Unless it's some shorthand for
concert-tickets that I'm unaware of? Unless it's intended I'll add that
change to this patch set as well.

On Tue, 2019-10-01 at 18:02 -0500, Joel Sherrill wrote:
> 
> 
> On Tue, Oct 1, 2019, 5:07 PM Gedare Bloom  wrote:
> > On Tue, Oct 1, 2019 at 3:53 PM Gedare Bloom 
> > wrote:
> > >
> > > On Wed, Sep 4, 2019 at 3:36 PM Martin Erik Werner
> > >  wrote:
> > > >
> > > > Remove various incorrect references to "lock" and "obtain" and
> > to an
> > > > option set which is not part of the barrier interface.
> > > >
> > > > It looks like the barrier documentation was started based on a
> > copy of
> > > > the semaphore documentation and these things are surviving
> > remnants.
> > > >
> > > > Also remove an unfinished sentence in the barrier wait
> > description,
> > > > since the intended information is already provided in the under
> > the NOTE
> > > > label.
> > > Thanks for your contribution!  I have a few minor comments:
> > >
> > > > ---
> > > >  c-user/barrier_manager.rst | 38 +++---
> > 
> > > >  1 file changed, 7 insertions(+), 31 deletions(-)
> > > >
> > > > diff --git a/c-user/barrier_manager.rst b/c-
> > user/barrier_manager.rst
> > > > index b0bf3bf..e5d69b0 100644
> > > > --- a/c-user/barrier_manager.rst
> > > > +++ b/c-user/barrier_manager.rst
> > > > @@ -324,8 +324,7 @@ NOTES:
> > > >
> > > >  .. _rtems_barrier_wait:
> > > >
> > > > -.. index:: obtain a barrier
> > > > -.. index:: lock a barrier
> > > > +.. index:: wait at a barrier
> > > >  .. index:: rtems_barrier_wait
> > > >
> > > >  BARRIER_WAIT - Wait at a barrier
> > > > @@ -356,14 +355,11 @@ DIRECTIVE STATUS CODES:
> > > >
> > > >  DESCRIPTION:
> > > >
> > > > -This directive acquires the barrier specified by ``id``. 
> > The
> > > > -``RTEMS_WAIT`` and ``RTEMS_NO_WAIT`` components of the
> > options parameter
> > > > -indicate whether the calling task wants to wait for the
> > barrier to become
> > > > -available or return immediately if the barrier is not
> > currently available.
> > > > -With either ``RTEMS_WAIT`` or ``RTEMS_NO_WAIT``, if the
> > current barrier
> > > > -count is positive, then it is decremented by one and the
> > barrier is
> > > > -successfully acquired by returning immediately with a
> > successful return
> > > > -code.
> > > > +This directive waits at the barrier specified by ``id``. 
> > The timeout
> > > > +parameter specifies the maximum interval the calling task
> > is willing to be
> > > > +blocked waiting for the barrier.  If it is set to
> > ``RTEMS_NO_TIMEOUT``,
> > > > +then the calling task will wait forever.  If the barrier
> > is available or
> > > 1. "will wait forever" -> "will wait forever if it doesn't get
> > > released" or something more precise, even just "may wait forever"
> 
> Will wait until the barrier is released/opened. Then add there is no
> option for no wait as found in other APIs. 

Ok, so
"If it is set to ``RTEMS_NO_TIMEOUT``, then the calling task will wait
until the barrier is released."
?

The whole "If the barrier is available or the ``RTEMS_NO_WAIT`` option
component is set, then the timeout is ignored." wording is another
semaphore leftover that I missed when moving things around.

I'm thinking I'll remove that whole sentence. replacing it with one of
the following alternatives (or a mix thereof):

It is not possible to make the calling task return based on the timeout
without wating for at least one clock tick.

There is no equivalent to the ``RTEMS_NO_WAIT`` option for this directive,
hence the minimum timeout possible is one clock tick.
   
It is not possible to make the calling task return immediately based on the
timeout, the minimum timeout is 1 clock tick.
   
The minimum timeout interval is one clock tick and it is therefore not
possible to make the calling task return immediately based on the timeout.

I'm still not particularly happy with any of them, but I'm a bit stuck
for the precise wording.

> > > 2. I'm not quite sure what "available" means in this context.
> > Maybe
> > > "open" is a better word?
> > >
> > I guess "available" is the wording that has been used throughout.
> > Again, probably due to inheriting from the semaphore documentation.
> > I
> > think "open/closed" is more precise when describing a barrier, but
> > available is OK if it is consistently applied.
> 
> Open/closed is better. I think of a barrier as the starting gates at
> a horse race. Horses arrive and wait while the gates are closed. When
> the race starts, all gates are opened and the horses are released. 
> > I would still like the fix on #1, even though that was not
> > 

Re: [PATCH 1/2] barrier: Remove leftover semaphore remnants

2019-10-01 Thread Joel Sherrill
On Tue, Oct 1, 2019, 5:07 PM Gedare Bloom  wrote:

> On Tue, Oct 1, 2019 at 3:53 PM Gedare Bloom  wrote:
> >
> > On Wed, Sep 4, 2019 at 3:36 PM Martin Erik Werner
> >  wrote:
> > >
> > > Remove various incorrect references to "lock" and "obtain" and to an
> > > option set which is not part of the barrier interface.
> > >
> > > It looks like the barrier documentation was started based on a copy of
> > > the semaphore documentation and these things are surviving remnants.
> > >
> > > Also remove an unfinished sentence in the barrier wait description,
> > > since the intended information is already provided in the under the
> NOTE
> > > label.
> > Thanks for your contribution!  I have a few minor comments:
> >
> > > ---
> > >  c-user/barrier_manager.rst | 38 +++---
> > >  1 file changed, 7 insertions(+), 31 deletions(-)
> > >
> > > diff --git a/c-user/barrier_manager.rst b/c-user/barrier_manager.rst
> > > index b0bf3bf..e5d69b0 100644
> > > --- a/c-user/barrier_manager.rst
> > > +++ b/c-user/barrier_manager.rst
> > > @@ -324,8 +324,7 @@ NOTES:
> > >
> > >  .. _rtems_barrier_wait:
> > >
> > > -.. index:: obtain a barrier
> > > -.. index:: lock a barrier
> > > +.. index:: wait at a barrier
> > >  .. index:: rtems_barrier_wait
> > >
> > >  BARRIER_WAIT - Wait at a barrier
> > > @@ -356,14 +355,11 @@ DIRECTIVE STATUS CODES:
> > >
> > >  DESCRIPTION:
> > >
> > > -This directive acquires the barrier specified by ``id``.  The
> > > -``RTEMS_WAIT`` and ``RTEMS_NO_WAIT`` components of the options
> parameter
> > > -indicate whether the calling task wants to wait for the barrier
> to become
> > > -available or return immediately if the barrier is not currently
> available.
> > > -With either ``RTEMS_WAIT`` or ``RTEMS_NO_WAIT``, if the current
> barrier
> > > -count is positive, then it is decremented by one and the barrier
> is
> > > -successfully acquired by returning immediately with a successful
> return
> > > -code.
> > > +This directive waits at the barrier specified by ``id``.  The
> timeout
> > > +parameter specifies the maximum interval the calling task is
> willing to be
> > > +blocked waiting for the barrier.  If it is set to
> ``RTEMS_NO_TIMEOUT``,
> > > +then the calling task will wait forever.  If the barrier is
> available or
> > 1. "will wait forever" -> "will wait forever if it doesn't get
> > released" or something more precise, even just "may wait forever"
>

Will wait until the barrier is released/opened. Then add there is no option
for no wait as found in other APIs.

> 2. I'm not quite sure what "available" means in this context. Maybe
> > "open" is a better word?
> >
> I guess "available" is the wording that has been used throughout.
> Again, probably due to inheriting from the semaphore documentation. I
> think "open/closed" is more precise when describing a barrier, but
> available is OK if it is consistently applied.
>

Open/closed is better. I think of a barrier as the starting gates at a
horse race. Horses arrive and wait while the gates are closed. When the
race starts, all gates are opened and the horses are released.

>
> I would still like the fix on #1, even though that was not introduced
> by you just copied from elsewhere, it is good to improve it at the
> same time.
>
> > > +the ``RTEMS_NO_WAIT`` option component is set, then timeout is
> ignored.
> > >
> > >  Conceptually, the calling task should always be thought of as
> blocking when
> > >  it makes this call and being unblocked when the barrier is
> released.  If
> > > @@ -372,24 +368,7 @@ DESCRIPTION:
> > >  callers will block except for the one which is the Nth task which
> trips the
> > >  automatic release condition.
> > >
> > > -The timeout parameter specifies the maximum interval the calling
> task is
> > > -willing to be blocked waiting for the barrier.  If it is set to
> > > -``RTEMS_NO_TIMEOUT``, then the calling task will wait forever.
> If the
> > > -barrier is available or the ``RTEMS_NO_WAIT`` option component is
> set, then
> > > -timeout is ignored.
> > > -
> > >  NOTES:
> > > -
> > > -The following barrier acquisition option constants are defined by
> RTEMS:
> > > -
> > > -.. list-table::
> > > - :class: rtems-table
> > > -
> > > - * - ``RTEMS_WAIT``
> > > -   - task will wait for barrier (default)
> > > - * - ``RTEMS_NO_WAIT``
> > > -   - task should not wait
> > > -
> > >  A clock tick is required to support the timeout functionality of
> this
> > >  directive.
> > >
> > > @@ -399,7 +378,6 @@ NOTES:
> > >
> > >  .. _rtems_barrier_release:
> > >
> > > -.. index:: wait at a barrier
> > >  .. index:: release a barrier
> > >  .. index:: rtems_barrier_release
> > >
> > > @@ -425,9 +403,7 @@ DIRECTIVE STATUS CODES:
> > >
> > >  DESCRIPTION:
> > >  This directive releases the barrier specified by id.  All tasks
> waiting at
> > > -the barrier will be 

Re: [PATCH 1/2] barrier: Remove leftover semaphore remnants

2019-10-01 Thread Gedare Bloom
On Tue, Oct 1, 2019 at 3:53 PM Gedare Bloom  wrote:
>
> On Wed, Sep 4, 2019 at 3:36 PM Martin Erik Werner
>  wrote:
> >
> > Remove various incorrect references to "lock" and "obtain" and to an
> > option set which is not part of the barrier interface.
> >
> > It looks like the barrier documentation was started based on a copy of
> > the semaphore documentation and these things are surviving remnants.
> >
> > Also remove an unfinished sentence in the barrier wait description,
> > since the intended information is already provided in the under the NOTE
> > label.
> Thanks for your contribution!  I have a few minor comments:
>
> > ---
> >  c-user/barrier_manager.rst | 38 +++---
> >  1 file changed, 7 insertions(+), 31 deletions(-)
> >
> > diff --git a/c-user/barrier_manager.rst b/c-user/barrier_manager.rst
> > index b0bf3bf..e5d69b0 100644
> > --- a/c-user/barrier_manager.rst
> > +++ b/c-user/barrier_manager.rst
> > @@ -324,8 +324,7 @@ NOTES:
> >
> >  .. _rtems_barrier_wait:
> >
> > -.. index:: obtain a barrier
> > -.. index:: lock a barrier
> > +.. index:: wait at a barrier
> >  .. index:: rtems_barrier_wait
> >
> >  BARRIER_WAIT - Wait at a barrier
> > @@ -356,14 +355,11 @@ DIRECTIVE STATUS CODES:
> >
> >  DESCRIPTION:
> >
> > -This directive acquires the barrier specified by ``id``.  The
> > -``RTEMS_WAIT`` and ``RTEMS_NO_WAIT`` components of the options 
> > parameter
> > -indicate whether the calling task wants to wait for the barrier to 
> > become
> > -available or return immediately if the barrier is not currently 
> > available.
> > -With either ``RTEMS_WAIT`` or ``RTEMS_NO_WAIT``, if the current barrier
> > -count is positive, then it is decremented by one and the barrier is
> > -successfully acquired by returning immediately with a successful return
> > -code.
> > +This directive waits at the barrier specified by ``id``.  The timeout
> > +parameter specifies the maximum interval the calling task is willing 
> > to be
> > +blocked waiting for the barrier.  If it is set to ``RTEMS_NO_TIMEOUT``,
> > +then the calling task will wait forever.  If the barrier is available 
> > or
> 1. "will wait forever" -> "will wait forever if it doesn't get
> released" or something more precise, even just "may wait forever"
> 2. I'm not quite sure what "available" means in this context. Maybe
> "open" is a better word?
>
I guess "available" is the wording that has been used throughout.
Again, probably due to inheriting from the semaphore documentation. I
think "open/closed" is more precise when describing a barrier, but
available is OK if it is consistently applied.

I would still like the fix on #1, even though that was not introduced
by you just copied from elsewhere, it is good to improve it at the
same time.

> > +the ``RTEMS_NO_WAIT`` option component is set, then timeout is ignored.
> >
> >  Conceptually, the calling task should always be thought of as blocking 
> > when
> >  it makes this call and being unblocked when the barrier is released.  
> > If
> > @@ -372,24 +368,7 @@ DESCRIPTION:
> >  callers will block except for the one which is the Nth task which 
> > trips the
> >  automatic release condition.
> >
> > -The timeout parameter specifies the maximum interval the calling task 
> > is
> > -willing to be blocked waiting for the barrier.  If it is set to
> > -``RTEMS_NO_TIMEOUT``, then the calling task will wait forever.  If the
> > -barrier is available or the ``RTEMS_NO_WAIT`` option component is set, 
> > then
> > -timeout is ignored.
> > -
> >  NOTES:
> > -
> > -The following barrier acquisition option constants are defined by 
> > RTEMS:
> > -
> > -.. list-table::
> > - :class: rtems-table
> > -
> > - * - ``RTEMS_WAIT``
> > -   - task will wait for barrier (default)
> > - * - ``RTEMS_NO_WAIT``
> > -   - task should not wait
> > -
> >  A clock tick is required to support the timeout functionality of this
> >  directive.
> >
> > @@ -399,7 +378,6 @@ NOTES:
> >
> >  .. _rtems_barrier_release:
> >
> > -.. index:: wait at a barrier
> >  .. index:: release a barrier
> >  .. index:: rtems_barrier_release
> >
> > @@ -425,9 +403,7 @@ DIRECTIVE STATUS CODES:
> >
> >  DESCRIPTION:
> >  This directive releases the barrier specified by id.  All tasks 
> > waiting at
> > -the barrier will be unblocked.  If the running task's preemption mode 
> > is
> > -enabled and one of the unblocked tasks has a higher priority than the
> > -running task.
> > +the barrier will be unblocked.
> >
> >  NOTES:
> >  The calling task may be preempted if it causes a higher priority task 
> > to be
> > --
> > 2.11.0
> >
> > ___
> > devel mailing list
> > devel@rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
___
devel mailing list
devel@rtems.org

Re: [PATCH 1/2] barrier: Remove leftover semaphore remnants

2019-10-01 Thread Gedare Bloom
On Wed, Sep 4, 2019 at 3:36 PM Martin Erik Werner
 wrote:
>
> Remove various incorrect references to "lock" and "obtain" and to an
> option set which is not part of the barrier interface.
>
> It looks like the barrier documentation was started based on a copy of
> the semaphore documentation and these things are surviving remnants.
>
> Also remove an unfinished sentence in the barrier wait description,
> since the intended information is already provided in the under the NOTE
> label.
Thanks for your contribution!  I have a few minor comments:

> ---
>  c-user/barrier_manager.rst | 38 +++---
>  1 file changed, 7 insertions(+), 31 deletions(-)
>
> diff --git a/c-user/barrier_manager.rst b/c-user/barrier_manager.rst
> index b0bf3bf..e5d69b0 100644
> --- a/c-user/barrier_manager.rst
> +++ b/c-user/barrier_manager.rst
> @@ -324,8 +324,7 @@ NOTES:
>
>  .. _rtems_barrier_wait:
>
> -.. index:: obtain a barrier
> -.. index:: lock a barrier
> +.. index:: wait at a barrier
>  .. index:: rtems_barrier_wait
>
>  BARRIER_WAIT - Wait at a barrier
> @@ -356,14 +355,11 @@ DIRECTIVE STATUS CODES:
>
>  DESCRIPTION:
>
> -This directive acquires the barrier specified by ``id``.  The
> -``RTEMS_WAIT`` and ``RTEMS_NO_WAIT`` components of the options parameter
> -indicate whether the calling task wants to wait for the barrier to become
> -available or return immediately if the barrier is not currently 
> available.
> -With either ``RTEMS_WAIT`` or ``RTEMS_NO_WAIT``, if the current barrier
> -count is positive, then it is decremented by one and the barrier is
> -successfully acquired by returning immediately with a successful return
> -code.
> +This directive waits at the barrier specified by ``id``.  The timeout
> +parameter specifies the maximum interval the calling task is willing to 
> be
> +blocked waiting for the barrier.  If it is set to ``RTEMS_NO_TIMEOUT``,
> +then the calling task will wait forever.  If the barrier is available or
1. "will wait forever" -> "will wait forever if it doesn't get
released" or something more precise, even just "may wait forever"
2. I'm not quite sure what "available" means in this context. Maybe
"open" is a better word?

> +the ``RTEMS_NO_WAIT`` option component is set, then timeout is ignored.
>
>  Conceptually, the calling task should always be thought of as blocking 
> when
>  it makes this call and being unblocked when the barrier is released.  If
> @@ -372,24 +368,7 @@ DESCRIPTION:
>  callers will block except for the one which is the Nth task which trips 
> the
>  automatic release condition.
>
> -The timeout parameter specifies the maximum interval the calling task is
> -willing to be blocked waiting for the barrier.  If it is set to
> -``RTEMS_NO_TIMEOUT``, then the calling task will wait forever.  If the
> -barrier is available or the ``RTEMS_NO_WAIT`` option component is set, 
> then
> -timeout is ignored.
> -
>  NOTES:
> -
> -The following barrier acquisition option constants are defined by RTEMS:
> -
> -.. list-table::
> - :class: rtems-table
> -
> - * - ``RTEMS_WAIT``
> -   - task will wait for barrier (default)
> - * - ``RTEMS_NO_WAIT``
> -   - task should not wait
> -
>  A clock tick is required to support the timeout functionality of this
>  directive.
>
> @@ -399,7 +378,6 @@ NOTES:
>
>  .. _rtems_barrier_release:
>
> -.. index:: wait at a barrier
>  .. index:: release a barrier
>  .. index:: rtems_barrier_release
>
> @@ -425,9 +403,7 @@ DIRECTIVE STATUS CODES:
>
>  DESCRIPTION:
>  This directive releases the barrier specified by id.  All tasks waiting 
> at
> -the barrier will be unblocked.  If the running task's preemption mode is
> -enabled and one of the unblocked tasks has a higher priority than the
> -running task.
> +the barrier will be unblocked.
>
>  NOTES:
>  The calling task may be preempted if it causes a higher priority task to 
> be
> --
> 2.11.0
>
> ___
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 1/2] barrier: Remove leftover semaphore remnants

2019-10-01 Thread Martin Erik Werner
Remove various incorrect references to "lock" and "obtain" and to an
option set which is not part of the barrier interface.

It looks like the barrier documentation was started based on a copy of
the semaphore documentation and these things are surviving remnants.

Also remove an unfinished sentence in the barrier wait description,
since the intended information is already provided in the under the NOTE
label.
---
 c-user/barrier_manager.rst | 38 +++---
 1 file changed, 7 insertions(+), 31 deletions(-)

diff --git a/c-user/barrier_manager.rst b/c-user/barrier_manager.rst
index b0bf3bf..e5d69b0 100644
--- a/c-user/barrier_manager.rst
+++ b/c-user/barrier_manager.rst
@@ -324,8 +324,7 @@ NOTES:
 
 .. _rtems_barrier_wait:
 
-.. index:: obtain a barrier
-.. index:: lock a barrier
+.. index:: wait at a barrier
 .. index:: rtems_barrier_wait
 
 BARRIER_WAIT - Wait at a barrier
@@ -356,14 +355,11 @@ DIRECTIVE STATUS CODES:
 
 DESCRIPTION:
 
-This directive acquires the barrier specified by ``id``.  The
-``RTEMS_WAIT`` and ``RTEMS_NO_WAIT`` components of the options parameter
-indicate whether the calling task wants to wait for the barrier to become
-available or return immediately if the barrier is not currently available.
-With either ``RTEMS_WAIT`` or ``RTEMS_NO_WAIT``, if the current barrier
-count is positive, then it is decremented by one and the barrier is
-successfully acquired by returning immediately with a successful return
-code.
+This directive waits at the barrier specified by ``id``.  The timeout
+parameter specifies the maximum interval the calling task is willing to be
+blocked waiting for the barrier.  If it is set to ``RTEMS_NO_TIMEOUT``,
+then the calling task will wait forever.  If the barrier is available or
+the ``RTEMS_NO_WAIT`` option component is set, then timeout is ignored.
 
 Conceptually, the calling task should always be thought of as blocking when
 it makes this call and being unblocked when the barrier is released.  If
@@ -372,24 +368,7 @@ DESCRIPTION:
 callers will block except for the one which is the Nth task which trips the
 automatic release condition.
 
-The timeout parameter specifies the maximum interval the calling task is
-willing to be blocked waiting for the barrier.  If it is set to
-``RTEMS_NO_TIMEOUT``, then the calling task will wait forever.  If the
-barrier is available or the ``RTEMS_NO_WAIT`` option component is set, then
-timeout is ignored.
-
 NOTES:
-
-The following barrier acquisition option constants are defined by RTEMS:
-
-.. list-table::
- :class: rtems-table
-
- * - ``RTEMS_WAIT``
-   - task will wait for barrier (default)
- * - ``RTEMS_NO_WAIT``
-   - task should not wait
-
 A clock tick is required to support the timeout functionality of this
 directive.
 
@@ -399,7 +378,6 @@ NOTES:
 
 .. _rtems_barrier_release:
 
-.. index:: wait at a barrier
 .. index:: release a barrier
 .. index:: rtems_barrier_release
 
@@ -425,9 +403,7 @@ DIRECTIVE STATUS CODES:
 
 DESCRIPTION:
 This directive releases the barrier specified by id.  All tasks waiting at
-the barrier will be unblocked.  If the running task's preemption mode is
-enabled and one of the unblocked tasks has a higher priority than the
-running task.
+the barrier will be unblocked.
 
 NOTES:
 The calling task may be preempted if it causes a higher priority task to be
-- 
2.11.0

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 1/2] barrier: Remove leftover semaphore remnants

2019-09-04 Thread Martin Erik Werner
Remove various incorrect references to "lock" and "obtain" and to an
option set which is not part of the barrier interface.

It looks like the barrier documentation was started based on a copy of
the semaphore documentation and these things are surviving remnants.

Also remove an unfinished sentence in the barrier wait description,
since the intended information is already provided in the under the NOTE
label.
---
 c-user/barrier_manager.rst | 38 +++---
 1 file changed, 7 insertions(+), 31 deletions(-)

diff --git a/c-user/barrier_manager.rst b/c-user/barrier_manager.rst
index b0bf3bf..e5d69b0 100644
--- a/c-user/barrier_manager.rst
+++ b/c-user/barrier_manager.rst
@@ -324,8 +324,7 @@ NOTES:
 
 .. _rtems_barrier_wait:
 
-.. index:: obtain a barrier
-.. index:: lock a barrier
+.. index:: wait at a barrier
 .. index:: rtems_barrier_wait
 
 BARRIER_WAIT - Wait at a barrier
@@ -356,14 +355,11 @@ DIRECTIVE STATUS CODES:
 
 DESCRIPTION:
 
-This directive acquires the barrier specified by ``id``.  The
-``RTEMS_WAIT`` and ``RTEMS_NO_WAIT`` components of the options parameter
-indicate whether the calling task wants to wait for the barrier to become
-available or return immediately if the barrier is not currently available.
-With either ``RTEMS_WAIT`` or ``RTEMS_NO_WAIT``, if the current barrier
-count is positive, then it is decremented by one and the barrier is
-successfully acquired by returning immediately with a successful return
-code.
+This directive waits at the barrier specified by ``id``.  The timeout
+parameter specifies the maximum interval the calling task is willing to be
+blocked waiting for the barrier.  If it is set to ``RTEMS_NO_TIMEOUT``,
+then the calling task will wait forever.  If the barrier is available or
+the ``RTEMS_NO_WAIT`` option component is set, then timeout is ignored.
 
 Conceptually, the calling task should always be thought of as blocking when
 it makes this call and being unblocked when the barrier is released.  If
@@ -372,24 +368,7 @@ DESCRIPTION:
 callers will block except for the one which is the Nth task which trips the
 automatic release condition.
 
-The timeout parameter specifies the maximum interval the calling task is
-willing to be blocked waiting for the barrier.  If it is set to
-``RTEMS_NO_TIMEOUT``, then the calling task will wait forever.  If the
-barrier is available or the ``RTEMS_NO_WAIT`` option component is set, then
-timeout is ignored.
-
 NOTES:
-
-The following barrier acquisition option constants are defined by RTEMS:
-
-.. list-table::
- :class: rtems-table
-
- * - ``RTEMS_WAIT``
-   - task will wait for barrier (default)
- * - ``RTEMS_NO_WAIT``
-   - task should not wait
-
 A clock tick is required to support the timeout functionality of this
 directive.
 
@@ -399,7 +378,6 @@ NOTES:
 
 .. _rtems_barrier_release:
 
-.. index:: wait at a barrier
 .. index:: release a barrier
 .. index:: rtems_barrier_release
 
@@ -425,9 +403,7 @@ DIRECTIVE STATUS CODES:
 
 DESCRIPTION:
 This directive releases the barrier specified by id.  All tasks waiting at
-the barrier will be unblocked.  If the running task's preemption mode is
-enabled and one of the unblocked tasks has a higher priority than the
-running task.
+the barrier will be unblocked.
 
 NOTES:
 The calling task may be preempted if it causes a higher priority task to be
-- 
2.11.0

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel