Need help with batched RPC calls
Robert J Woodhead
trebor at lkbreth.foretune.co.jp
Tue May 21 15:05:55 AEST 1991
I am just getting started playing around with RPC. Eventually I will
be writing a very complicated server, so I decided it would be prudent
to write a simple one first to get aquainted.
So far the learning process has been fairly painless, but now I've run
into a snag, and thus I come, reverently, to the unix experts of the
net with a (hopefully simple) question.
What I want to do is as follows: Have a server that has many clients
at any one time. When it gets a message (via RPC call) from a client,
it sends it on to all the other clients. In other words, it's a
multi-user chat program ( ;^) ).
All of the clients are sitting at a select() call waiting for a
RPC callback from the server or keyboard input. This works fine.
Now, version 1 of this program just used normal RPC calls. The
client would RPC a message to the server, which would RPC it to the
other clients.
Of course, there is a built in snag to this. If client A RPCs a
message, then client B RPC's a message, you can get a deadlock
where the server and client B are both waiting for the other to
respond.
Knowing this, I decided to try using batched RPC calls. Unfortunately,
this doesn't work because you need to do a final "normal" RPC call
to _each client that got batched calls_, not _any client (such as
the one who sent the original message)_, to dump the batched calls
to the clients -- and you still get a possible deadlock.
All I want to be able to do is pass a message to the other clients
WITHOUT the server needing to get any acknowledgement. I know that
I could do it by buffering up messages and having the clients
send a periodic "got anything for me" message to the server, but
this is inelegant.
I tried messing with TCP_NODELAY but that doesn't do anything.
Any suggestions?
Please email to me if possible; I will summarize and post to the net
later. Many thanks in advance.
--
+--------------------------------------------------------------------------+
| Robert J. Woodhead, Biar Games / AnimEigo, Incs. trebor at foretune.co.jp |
| "The Force. It surrounds us; It enfolds us; It gets us dates on Saturday |
| Nights." -- Obi Wan Kenobi, Famous Jedi Knight and Party Animal. |
More information about the Comp.unix.programmer
mailing list