comp.lang.ada
 help / color / mirror / Atom feed
From: "Jean-Pierre Rosen" <rosen@adalog.fr>
Subject: Re: protected objects and external call
Date: Fri, 23 Jan 2004 09:59:17 +0100
Date: 2004-01-23T09:59:17+01:00	[thread overview]
Message-ID: <72oqub.mka.ln@skymaster> (raw)
In-Reply-To: 5f59677c.0401220851.3c2922b0@posting.google.com

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1197 bytes --]


"Evangelista Sami" <evangeli@cnam.fr> a �crit dans le message de news:5f59677c.0401220851.3c2922b0@posting.google.com...
> hi all
>
> in RM-9.5.1 we see there is a difference between external and internal
> protected calls. Let's consider the following code
> ----------------------------------
> protected type Prot is
>    procedure P;
> end Prot;
> My_Prots : array (1..10) of Prot;
>
> protected body Prot is
>
>    procedure P is
>    begin
>       .....
>       My_Prots(5).P;
>       ....
>    end;
>
> end Prot;
> ----------------------------------
>
> Is the call "My_Prots(5).P" always considered as an external call or
> is it an internal call if the object on which is executed the
> procedure is My_Prots(5) ?
>
It is an external call (in the general case, you cannot know statically whether it's truly external or not).
This means that you'll try to grab the lock of the PO again, and this can lead to dead-lock.
This is why it is considered a potentially blocking operation, and as such disallowed in a protected operation.

-- 
---------------------------------------------------------
           J-P. Rosen (rosen@adalog.fr)
Visit Adalog's web site at http://www.adalog.fr





  parent reply	other threads:[~2004-01-23  8:59 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 [this message]
2004-01-23 14:53   ` Robert A Duff
2004-01-23 15:50     ` Jean-Pierre Rosen
2004-01-23 17:19       ` Robert A Duff
replies disabled

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