CVS difference for ai12s/ai12-0171-1.txt

Differences between 1.5 and version 1.6
Log of other versions for file ai12s/ai12-0171-1.txt

--- ai12s/ai12-0171-1.txt	2016/06/01 04:59:37	1.5
+++ ai12s/ai12-0171-1.txt	2016/06/07 05:17:19	1.6
@@ -1236,3 +1236,55 @@
 forwarded to the ARG.
 
 ****************************************************************
+
+From: Tucker Taft
+Sent: Saturday, June 4, 2016  8:12 PM
+
+> The view of the IRTAW was that
+>
+> 1) The definition of Synchronous task control should not be changed; 
+> concurrent calls to \texttt{Suspend\_Until\_True} are not defined to 
+> be atomic and hence suspension objects cannot be shared between tasks
+
+I would recommend we emphasize this with some additional wording, because as
+written it is easy to become confused about whether a suspension object can
+be used as a simple mutex.
+
+Bob, are you planning to update the wording to AI12-0171?  It might be nice
+to make it a bounded error to have two tasks contending on Suspend_Until_True,
+and allow implementations to raise Program_Error if they detect the situation.
+
+****************************************************************
+
+From: Randy Brukardt
+Sent: Tuesday, June 7, 2016 12:15 AM
+
+...
+> > The view of the IRTAW was that
+> >
+> > 1) The definition of Synchronous task control should not be changed; 
+> > concurrent calls to \texttt{Suspend\_Until\_True} are not defined to 
+> > be atomic and hence suspension objects cannot be shared between 
+> > tasks
+> 
+> I would recommend we emphasize this with some additional wording, 
+> because as written it is easy to become confused about whether a 
+> suspension object can be used as a simple mutex.
+
+I agree, it should be clear whatever we decide.
+
+> Bob, are you planning to update the wording to AI12-0171?  It might be 
+> nice to make it a bounded error to have two tasks contending on 
+> Suspend_Until_True, and allow implementations to raise Program_Error 
+> if they detect the situation.
+
+I'd be careful about that. The usual "works or raises Program_Error" bounded
+error would seem to be adding overhead here, precisely what we don't want to
+do. (We might as well just require it to work in that case.) If we say it is
+erroneous (it probably is already - bad use of shared variables), then an
+implementation can do anything they want, which surely includes raising an
+exception. And there surely is no such thing as a bounded error where the
+choices are "erroneous or Program_Error", 'cause that's the same as erroneous
+by itself.
+
+****************************************************************

Questions? Ask the ACAA Technical Agent