comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@world.std.com>
Subject: Re: D.10
Date: 1999/04/13
Date: 1999-04-13T00:00:00+00:00	[thread overview]
Message-ID: <wccpv585zag.fsf@world.std.com> (raw)
In-Reply-To: m3btgstzx7.fsf@mheaney.ni.net

Matthew Heaney <matthew_heaney@acm.org> writes:

> Is an invocation of operation Suspend_Until_True on a suspension object
> by one task atomic with respect to an invocation of Suspend_Until_True
> on the same suspension object by another task?

Well, the RM doesn't say it is, so I guess it isn't.  I admit the RM
isn't crystal clear on this point.

The *intent* is that this feature would be used in a situation where a
given suspension object is "owned" by a single task, and only that task
does Suspend_Until_True.  That task publishes a handle on the suspension
object to the rest of the world, and other tasks can call Set_True to
wake it up.  I would also expect that only the owner does Set_False
(presumably before "publishing").  Actually, it is set False by default
initialization, so you don't need to ever call Set_False, unless you
want to reuse the same suspension object.

The example you gave from Burns and Wellings seems weird to me,
whatever the RM says.

The run-time system I'm currently working on (for the ADI SHARC DSP
chip) has an implementation (just a few instructions) that will make the
example work.  But it wouldn't surprise me if other implementations have
a race condition.

- Bob
-- 
Change robert to bob to get my real email address.  Sorry.




  reply	other threads:[~1999-04-13  0:00 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-04-12  0:00 D.10 Matthew Heaney
1999-04-12  0:00 ` D.10 Steve Quinlan
1999-04-12  0:00 ` D.10 James S. Rogers
1999-04-13  0:00   ` D.10 Matthew Heaney
1999-04-13  0:00     ` D.10 Robert Dewar
1999-04-13  0:00       ` D.10 Robert Dewar
1999-04-13  0:00         ` D.10 Matthew Heaney
1999-04-13  0:00           ` Robert A Duff [this message]
1999-04-13  0:00       ` D.10 Matthew Heaney
1999-04-13  0:00 ` D.10 Robert Dewar
1999-04-13  0:00   ` D.10 Robert A Duff
1999-04-13  0:00     ` D.10 Robert Dewar
1999-04-13  0:00     ` D.10 Robert Dewar
1999-04-13  0:00   ` D.10 Matthew Heaney
1999-04-13  0:00     ` D.10 Tucker Taft
1999-04-14  0:00       ` D.10 Robert Dewar
replies disabled

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