The situation: I want a frontend that checks for user input, a
backend that checks networking, and for them to notify eachother when
they get input.
The problem: If they both try to notify eachother at once they'll
deadlock. It's a race condition.
The solutions:
a) I can make the frontend poll the backend for updates, instead of
the backend pushing them to the client
b) I can make them able to service requests while making requests of
their own.
b can be done either by making the orb reentrant[0], so that it
recursively handles requests when waiting for requests of it's own to
be answered, or by using threads. If there's a problem with threads
then forking could probably be done instead.
And so my question: what is the practical solution now, and what'll
be practical in the future?
[0] I've no idea if CORBA has a problem with this or not.
--
Adam Olsen, aka Rhamphoryncus
|