comp.lang.ada
 help / color / mirror / Atom feed
* Linux Calls
@ 2003-07-31  0:05 Jeremy Smith
  2003-07-31 19:26 ` Simon Wright
  0 siblings, 1 reply; 3+ messages in thread
From: Jeremy Smith @ 2003-07-31  0:05 UTC (permalink / raw)


I have two tasks, built using gnat 3.13p, running under Linux, Red Hat 8.
The idea was to have one task processing and performing cyclic tasks
continuously while the other task waits for commands and responds to them
right away.  To accomplish this I am want to run the command receipt task at
a higher priority than the continuous processing task.  My problem is that
the commands are coming over an IPC message queue, so when the command
receipt task calls msgget (visible via pragma Import) it blocks but does it
outside the Ada RTS.  The continuous processing task never gains context
because the Ada RTS doesn't know the command receipt task has blocked
pending receipt of the next command.

Anybody know a way to wrap a blocking OS call so that the other lower
priority Ada tasks can play until it returns?

Thanks

Jeremy






^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-08-01  5:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-31  0:05 Linux Calls Jeremy Smith
2003-07-31 19:26 ` Simon Wright
2003-08-01  5:32   ` David Holm

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