comp.lang.ada
 help / color / mirror / Atom feed
From: progers@acm.org
Subject: Re: Question about the need for requeue as described in Rationale
Date: 1996/07/05
Date: 1996-07-05T00:00:00+00:00	[thread overview]
Message-ID: <4rk1tb$lit@uuneo.neosoft.com> (raw)
In-Reply-To: 4rjimv$glk@portal.gmu.edu


In <4rjimv$glk@portal.gmu.edu>, bsanden@site.gmu.edu (Bo I. Sanden) writes:
>James A. Squire (m193884@CSEHP3.MDC.COM) wrote:
>: I am trying to understand what problem Requeue is trying to solve and
>: the above does not help me.  I can see from the example given how it
>: would be difficult to do the same thing in Ada83, but as I was trying to
>: describe the Ada83 problem that raised the need for this, I found I
>: couldn't come up with any good way of describing the problem.
>
>In my understanding, requeue is "needed" in Ada 95 primarily as part of
>the effort to replace by protected units what was sometimes called 
>guardian tasks in Ada 83. Guardian tasks execute only while being
>called by other task, and made a typical Ada 83 program contain more 
>tasks than the inherent concurrency of the problem would suggest. 
>(Guardian tasks where there to restrict concurrency by enforcing 
>synchronization of other tasks.)

Requeue is needed to deal with the difficulties associated with
"avoidance synchronization", which is the model used in Ada.
The most illustrative example IMHO is the lack
of expressive power of guard conditions in select statements:
the conditions may not refer to the formal parameters of the
accept statements they control.  Thus you sometimes have to 
to do two rendezvous instead of one, and this leads to a
number of other difficulties: the race conditions and potential
for abort mentioned elsewhere.  

See 

	A Problem With Ada and Resource Allocation, Ada
	Letters, vol. 3, no. 4 from 1984,

or better yet, to hear how requeue works,

	Burns & Wellings' Concurrency In Ada, 
	Cambridge University Press, 1995

pat
---------------
Patrick Rogers
progers@acm.org





  reply	other threads:[~1996-07-05  0:00 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-06-20  0:00 GNAT Codesize Haug Buerger
1996-06-20  0:00 ` James E. Hopper
1996-06-21  0:00 ` Doug Smith
1996-06-21  0:00 ` Robert Dewar
1996-06-24  0:00   ` John McCabe
1996-06-24  0:00     ` John Howard
1996-06-25  0:00       ` David J. Fiander
1996-06-25  0:00       ` Robert Dewar
1996-06-26  0:00     ` Robert Dewar
1996-06-28  0:00       ` John McCabe
1996-06-28  0:00         ` Fergus Henderson
1996-06-29  0:00           ` John McCabe
1996-07-01  0:00             ` Robert Dewar
1996-07-05  0:00               ` John McCabe
1996-07-05  0:00             ` JP Thornley
1996-06-30  0:00         ` Robert Dewar
1996-07-02  0:00           ` John McCabe
1996-07-03  0:00             ` Robert Dewar
1996-06-28  0:00       ` Fergus Henderson
1996-07-01  0:00         ` Michael Feldman
1996-07-03  0:00           ` John McCabe
1996-07-02  0:00         ` John McCabe
1996-07-03  0:00           ` Robert Dewar
1996-07-06  0:00             ` John McCabe
1996-07-06  0:00               ` Michael Feldman
1996-07-06  0:00               ` Robert Dewar
1996-07-08  0:00             ` Gavin Smyth
1996-07-03  0:00   ` Question about the need for requeue as described in Rationale James A. Squire
1996-07-05  0:00     ` Bo I. Sanden
1996-07-05  0:00       ` progers [this message]
1996-07-06  0:00     ` Robert A Duff
1996-07-04  0:00   ` Samuel Tardieu
1996-07-04  0:00     ` Robert Dewar
1996-07-08  0:00   ` James A. Squire
1996-07-09  0:00     ` progers
1996-07-10  0:00     ` Robert A Duff
1996-07-10  0:00       ` progers
1996-07-08  0:00   ` James A. Squire
1996-07-08  0:00   ` James A. Squire
1996-07-08  0:00     ` Robert A Duff
1996-07-09  0:00     ` Bo I. Sanden
1996-07-09  0:00   ` Jon S Anthony
1996-06-21  0:00 ` GNAT Codesize Ralph Paul
1996-07-08  0:00 ` Question about the need for requeue as described in Rationale James A. Squire
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox