Hi,

I have a problem on an OS, its not plan9 but similar,
so I thought I would ask here.

Say you have a synthetic file which you use to query
the state of a subsystem, a plan9 example might /net/dns,
my example is reading a port in an fpga.

I want to run this multithreaded, but the requests
and replies are not atomic on the same file descriptor.
Thus I need to have each thread request on its own file
descriptor, or, have a Qlock in the requesting program
to interlock requests and replies.

Now the fun.

Some requests can take a long time (hours) so the Qlock
is inpractiable, though adding a open per thread is also
a pain.

When I get problems like this I usually think "how would I
do this on plan9", and the only answer I can come up with is
to have a single ioproc doing the device access and a load of
threads in another proc making requests.

Anyone think of a technique I have missed?

-Steve

Reply via email to