Re: Single threading and CORBA_Object return types



Hi Bill,

On Thu, 28 Jun 2001, Bill Haneman wrote:
> I am trying to understand some behavior I am seeing and would like
> confirmation that it is a consequence of ORBit's single threading, and
> solicit suggestions for dealing with it.

	Great.

> I am obtaining an instance of a registry object from OAF, and then
> need to query it (in a client).  It appears to me that if the client
> calls any functions that return CORBA_Object references, the return is
> accomplished via a push-IIOP stream from the server to the caller.
> 
> This works fine if I make one such call; and I get the reply without
> entering the corba event loop (which I do via bonobo_main()).  However
> if I make two such calls in my client without entering bonobo_main the
> second call blocks in 
> 
> __select()
> __DTOR_END__ ()
> giop_main_next_message_2 (blocking=1, ...)
> giop_recv_reply_buffer_use_multiple_2 (..., block_for_reply=1)
> giop_recv_buffer_use_2 (..., block_for_reply=1)
> <my client-side CORBA call is here in the stack>
> 
> Is this a single-threading issue, as I expect?  If so, what is the
> recommended workaround so that my client can programmatically query
> the service?  The problem only arises with calls that return
> CORBA_Object derivatives, not calls that return simple data types.

	Ok, I think it is most likely to be that you need to call
bonobo_activate to setup bonobo to be able to handle calls.

	Alternatively, most people call bonobo_main [ which calls
bonobo-activate ] and do any CORBA initialization in a 1 shot idle
handler.

> Believe me, I have been wading through gdb for awhile, my client-side
> call is not calling back into the requestor.  The block seems to occur
> when the service tries to return the CORBA_Object to the caller, but
> only the second time.

	Yes, I've wasted ages on this too in the past, as have several
others, it should be in the FAQ.

	Regards,

		Michael.

-- 
 mmeeks@gnu.org  <><, Pseudo Engineer, itinerant idiot





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]