Re: ORBit2 versus hanging method calls
- From: Michael Meeks <michael ximian com>
- To: Peter Williams <peter newton cx>
- Cc: <gnome-components-list gnome org>
- Subject: Re: ORBit2 versus hanging method calls
- Date: Thu, 11 Oct 2001 22:10:59 -0400 (EDT)
Hi Peter,
On 11 Oct 2001, Peter Williams wrote:
> I was wondering something about whether ORBit2 fixes a bug
> (well, more like a general problem) in ORBit1 that seems to me to be a
> really major issue.
:-) Yes.
> In ORBit 1, the following scenario can happen with unpleasant
> regularity:
>
> 1. Component A activates or finds Component B
> 2. A calls method Foo() on B
> 3. B crashes or hangs inside impl_Foo()
> 4. A hangs forever (inside giop_main_message_next_2 or whatever
> it is) waiting for a response from B.
Ok - this shouldn't happen in ORBit1. So - there are several
strands of answer; in ORBit2 we used to hang if the other end died - now
we don't, we return an exception immediately the other end dies - the
correct behavior.
Secondly; if the other end doesn't die, but goes into an infinite
loop inside a method that returns a value - yes A will hang forever
waiting for the result - again correct behavior.
Thirdly - there is builtin ASync support in ORBit2 - a bit like
bonobo-async, but using the infastructure inside ORBit2 [ that superceeds
bonobo-async by an order of intelligence ], so - it should be possible to
make nice async methods for things that might take a long time, and invoke
a standard CORBA method asynchronously without any fooling around in the
IDL.
> Is there anything in ORBit2 that will add a timeout or something
> similar to prevent this?
Nope - although, in fact it wouldn't really be that hard to add
one; but it really shouldn't be neccessary.
Regards,
Michael.
--
mmeeks gnu org <><, Pseudo Engineer, itinerant idiot
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]