comp.lang.ada
 help / color / mirror / Atom feed
From: "Jeremy Smith" <jeremy.t.smith@mindspring.com>
Subject: Linux Calls
Date: Thu, 31 Jul 2003 00:05:10 GMT
Date: 2003-07-31T00:05:10+00:00	[thread overview]
Message-ID: <W2ZVa.147$jp.52@newsread4.news.pas.earthlink.net> (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






             reply	other threads:[~2003-07-31  0:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-31  0:05 Jeremy Smith [this message]
2003-07-31 19:26 ` Linux Calls Simon Wright
2003-08-01  5:32   ` David Holm
replies disabled

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