E.2.1 Shared Passive Library Units
A shared passive library unit is used for managing
global data shared between active partitions. The restrictions on shared
passive library units prevent the data or tasks of one active partition
from being accessible to another active partition through references
implicit in objects declared in the shared passive library unit.
form of a pragma
Shared_Passive is as follows:
shared passive library unit
is a library unit to which a Shared_Passive
pragma applies. The following restrictions apply to such a library unit:
- it shall be preelaborable (see 10.2.1);
- it shall depend semantically only
upon declared pure or shared passive library units;
- it shall not contain a library-level
declaration of an access type that designates a class-wide type, task
type, or protected type with entry_declarations.
the definition of accessibility given in 3.10.2
the declaration of a library unit P1 is not accessible from within the
declarative region of a shared passive library unit P2, unless the shared
passive library unit P2 depends semantically on P1.
A shared passive library unit
A shared passive library unit shall be assigned to
at most one partition within a given program.
the rule given in 10.2
, a compilation unit
in a given partition does not need
(in the sense of 10.2
the shared passive library units on which it depends semantically to
be included in that same partition; they will typically reside in separate