comp.lang.ada
 help / color / mirror / Atom feed
* Question about stopping tasks.
@ 1986-12-17 22:39 "BUD::PEARSON"
  0 siblings, 0 replies; only message in thread
From: "BUD::PEARSON" @ 1986-12-17 22:39 UTC (permalink / raw)



    I have a task whose only job is to accept data from an external device
and add them to a queue. It spends essentially all of its time in an I/O wait
state, which is what I wanted, since data may be missed if it gets distracted
too long. (When it adds something to the queue, it calls an entry in another
task to announce that there's something to process; but the other task is
designed so that it is essentially always ready to accept that entry call.)

    The problem: How do I tell this task to stop when the program
decides to end? Presently, I'm making a direct call to the "Pull the
plug on this program" system service (Starlet.Exi on this VAX / VMS
system), but I understand that this constitutes an Erroneous Program,
since I'm doing it while an I/O operation is outstanding. Another
option I've considered, having an AST transfer control to one arm of a
SELECT that also has a TERMINATE, is also illegal because of the
outstanding I/O.

    Surely people do this sort of thing all the time. What's the ticket?

  -  Peter
pearson%anchor.decnet@lll-icdc.arpa
------

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1986-12-17 22:39 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1986-12-17 22:39 Question about stopping tasks "BUD::PEARSON"

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