I'd like the server to do something useful in addition to handling
client requests (re-registering itself with a list of servers in a
timely
manner, like every few minutes). I can imagine many scenarios
where it is not acceptable to have orb->run() essentially lockup your
server now and forevermore!
I see someone has at least thought about this by the tantilizing
but
unimplemented pending_work and perform_work methods in
orbitcpp_orb.hh.
Does anyone else have the need for this? Is anyone working on
it?
I've hacked a version that sets an alarm in src/IIOP/connection.c
before select is called, then perform my work in the signal handler.
This is inferior to a real implementation. If anyone is working
on a
real implementation, please let me know so I can help and use
it. If
no one is working on this, also let me know and perhaps I will then
write the real implementation.
Also, in a previous email, I pointed out the problem in orbit where
a client will hang indefintely when the server crashes. Can it
be
no one else has a problem with this behavior?! I fixed this by
hacking
orbit's src/orbit-idl-compiler/backends/corbit-idl-c-stubs.c where
it
generated "write" code that did not error check because the environment
variable BACKWARDS_COMPAT_0_4 was defined.
-Lance.
-- -=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=- Lance Welsh lance seacoms com Seascape Communications (650) 327-6890 -=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=--=+=-