E.4.1 Pragma Asynchronous

From OC Systems Wiki!
Jump to: navigation, search

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.


The form of a pragma Asynchronous is as follows:

pragma Asynchronous(local_name);

Legality Rules

The local_name of a pragma Asynchronous shall denote either:

  • One or more remote procedures; the formal parameters of the procedure(s) shall all be of mode in;
  • 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;
  • The first subtype of a remote access-to-class-wide type.

Static Semantics

A pragma Asynchronous is a representation pragma. When applied to a type, it specifies the type-related asynchronous aspect of the type.

Dynamic Semantics

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

Asynchronous remote procedure calls shall be implemented such that the corresponding body executes at most once as a result of the call.

Copyright © 1992,1993,1994,1995 Intermetrics, Inc.
Copyright © 2000 The MITRE Corporation, Inc. Ada Reference Manual