Pragma Asynchronous
Author: JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor

Contents Index Search 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
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
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.

Contents Index Search Previous Next Legal