CVS difference for ais/ai-00265.txt

Differences between 1.4 and version 1.5
Log of other versions for file ais/ai-00265.txt

--- ais/ai-00265.txt	2003/01/16 01:36:46	1.4
+++ ais/ai-00265.txt	2003/02/19 00:31:10	1.5
@@ -1,4 +1,4 @@
-!standard D.2.2 (5)                                03-01-06  AI95-00265/04
+!standard D.2.2 (5)                                03-02-08  AI95-00265/05
 !standard D.7 (00)
 !class amendment 01-05-10
 !status work item 01-05-10
@@ -54,8 +54,8 @@
 The form of a pragma Partition_Elaboration_Policy is as follows:
 pragma Partition_Elaboration_Policy ( <Policy_Identifier> );
 
-The Policy_Identifier shall be either Sequential or Concurrent;
-Concurrent is the default.
+The Policy_Identifier shall be either Sequential, Concurrent or an
+implementation-defined identifier; Concurrent is the default.
 
 Legality Rules
 If the Sequential policy is specified for a
@@ -73,61 +73,36 @@
 handlers is deferred. The deferred task activation and handler attachment
 occurs after the elaboration of all library_items prior to calling the main
 subprogram. At this point the Environment task is suspended until all deferred
-task activation and handler attachment is complete. Task activation does not
-inherit the priority of the Environment task.
+task activation and handler attachment is complete.
 
-If the Policy_Identifier is Sequential and the Environment task, in
-its elaboration of library_items, executes a potentially-blocking
-operation other than a delay statement, task creation or a call on
-a protected entry with a open barrier then it becomes terminated,
-thereby completing execution of the active partition. If any deferred
-task activation fails then Tasking_Error is raised in the
-Environment task. The Environment task and all tasks whose
-activations fail are terminated.
+If any deferred task activation fails then Tasking_Error is raised
+in the Environment task. The Environment task and all tasks whose
+activations fail are terminated. If a number of dynamic interrupt
+handler attachments for the same interrupt are defered then the
+handler most recently deferred is attached.
 
 If the Policy_Identifier is Concurrent the execution of
 the declarative part of the Environment task is as defined in 10.2.
 
 Implementation Advice
 
-If any deferred task activation fails, it is recommended that the active
-partition be immediately terminated to mitigate the hazard posed by continuing
-execution with a subset of the tasks being active.
+If the Policy_Identifier is Sequential and the Environment task
+becomes permanently blocked then the partition is deadlocked
+and it is recommended that the active partition be immediately
+terminated.
 
 Implementation Permission
 
-If the Environment task becomes permanently blocked it should become
-terminated. However an implemention is allowed not to detect this state
-if it causes distributed overhead in the run-time.
+If the Policy_Identifier is Sequential and any task activation
+fails then an implementation may immediately terminate the active
+partition to mitigate the hazard posed by continuing to execute
+with a subset of the tasks being active.
 
 !example
 
 !discussion
 
-a) The Restriction No_Task_Hierarchy is needed to prevent deadlock.
-
-b) If the Environment task does a number of dynamic attachments
-of interrupt handlers during its elaboration they will all be
-deferred. It is perhaps not clear which should be the actual one
-attached once attachment occurs. One solution would be to ban
-Dynamic Attachments.
-
-c) At the last ARG meeting the view was taken that the AI should say what the
-Environment task should not do (ie how it can get blocked). However this
-list is quite long:
-- a select_statement (conditional entry call, or an ATC)
-- an entry_call_statement
-- an abort_statement
-- a call on a protected subprogram that performs an external call on a
-protected subprogram (or an external requeue) with the same target
-object as that of the outer protected subprogram
-- a call on a language-defined subprogram that is potentially blocking
-- a call on a subprogram whose body contains one of the above excluded
-operations.
-
-Hence have retained the original structure which list the acceptable
-blocking operations - but have included calling a protected entry which
-has a True barrier.
+The Restriction No_Task_Hierarchy is needed to prevent deadlock.
 
 !ACATS test
 

Questions? Ask the ACAA Technical Agent