Contents Index Previous Next
E.4.1 Pragma Asynchronous
1
[This subclause introduces the pragma Asynchronous
which allows a remote subprogram call to return prior to completion of
the execution of the corresponding remote subprogram body.]
Syntax
2
The form of
a pragma Asynchronous is as follows:
3
pragma Asynchronous(
local_name);
Legality Rules
4
The local_name
of a pragma Asynchronous shall denote either:
5
- One or more remote procedures; the formal parameters of
the procedure(s) shall all be of mode in;
6
- The first subtype of a remote access-to-procedure type;
the formal parameters of the designated profile of the type shall all
be of mode in;
7
- The first subtype of a remote access-to-class-wide type.
Static Semantics
8
{representation pragma (Asynchronous)
[partial]} {pragma, representation
(Asynchronous) [partial]} A pragma Asynchronous
is a representation pragma. When applied to a type, it specifies the
type-related
asynchronous aspect of the type.
Dynamic Semantics
9
{remote procedure call (asynchronous)}
{asynchronous (remote procedure
call)} A remote call is
asynchronous
if it is a call to a procedure, or a call through a value of an access-to-procedure
type, to which a pragma Asynchronous applies. In addition, if a pragma
Asynchronous applies to a remote access-to-class-wide type, then a dispatching
call on a procedure with a controlling operand designated by a value
of the type is asynchronous if the formal parameters of the procedure
are all of mode
in.
Implementation Requirements
10
Asynchronous remote procedure calls shall be
implemented such that the corresponding body executes at most once as
a result of the call.
10.a
To be honest: It is not
clear that this rule can be tested or even defined formally.
Contents Index Previous Next Legal