comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: protected objects and external call
Date: 23 Jan 2004 12:19:49 -0500
Date: 2004-01-23T12:19:49-05:00	[thread overview]
Message-ID: <wccllnytwei.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 2tfrub.25v.ln@skymaster

"Jean-Pierre Rosen" <rosen@adalog.fr> writes:

> "Robert A Duff" <bobduff@shell01.TheWorld.com> a �crit dans le message de
> > > This is why it is considered a potentially blocking operation, and as
> > > such disallowed in a protected operation.
> >
> > No, I don't think that's quite right.  Entry calls are potentially
> > blocking, and you're not supposed to call them from inside a protected
> > procedure.  (Actually, it's a bounded error, and some compilers allow
> > it.)  But a protected procedure can call another protected procedure
> > with an external call.  It's up to the programmer to make sure it's not
> > the same protected object.  (You also have to obey the priority
> > ceiling rules.)
> >
> > In other words, merely grabbing the lock of a PO is *not* considered
> > blocking or potentially blocking in Ada, and no queue-ing need be
> > involved.
> >
> 9.5.1(16): [Potentially blocking operations]
> an external call on a protected subprogram (or an external requeue)
> with the same target object as that of the protected action;

Ah, thanks, I had forgotten that.  Note that this is *only* talking
about the deadlocking case -- it's just fine to call some other PO's
procedures, and you can't detect this at compile time.  The AARM
explains, "This is really a deadlocking call, not a blocking call...."

- Bob



      reply	other threads:[~2004-01-23 17:19 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-22 16:51 protected objects and external call Evangelista Sami
2004-01-22 18:28 ` Robert A Duff
2004-01-23  8:59 ` Jean-Pierre Rosen
2004-01-23 14:53   ` Robert A Duff
2004-01-23 15:50     ` Jean-Pierre Rosen
2004-01-23 17:19       ` Robert A Duff [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox