Re: Bonobo Unique Application



On Seg, 2003-04-14 at 08:59, Michael Meeks wrote:
> Hi Gustavo,
> 
> On Fri, 2003-04-11 at 16:58, Alexander Larsson wrote:
> > Every app that uses this API has to queue an idle, or guarantee that the 
> > "message" signal handler is reentrancy-safe with respect to all code that 
> > ever makes a corba call, including in libraries the app uses. Since it is 
> > impossible to guarantee this in any non-trivial app, every app needs to 
> > queue an idle. Therefore I think it makes much more sense to have bonobo 
> > do the idle and not every application.
> 
> 	Alex is right; we need to queue the incoming message invocation until
> idle; this is really hard to do without ORB support -> thus we need to
> start using the support I added for this to ORBit2 in HEAD; see the
> ORBitThreadHint in poa/orbit-adaptor.h; we need to be able to set the
> POA on BonoboObjects as they are instantiated (via some internal to
> BonoboObject POA selection magic) preferably with a helper API to re-use
> eg. the AT_IDLE / ONEWAY_AT_IDLE methods. This would be _really_ useful
> in eg. nautilus where they do a lot of work re-proxying stuff until
> idle. I think we could also bin a chunk of code from evolution with
> that. The POA should be per BonoboObject interface, not per AO (IMHO).
> 
> 	So - having done that - I think we're in good shape for pushing this
> API in ( we'd want an action GEP first though I think ).

  Well, if you need a GEP for every trivial API addition to a library,
then that library will probably progress very slowly, IMHO.

> 
> 	How does that sound ?

  Michael, this message comes a bit late. :)
  Two days ago I sent a new version of this patch.  You'll find out that
I tried using the POAManager holding state to accomplish reentrancy
protection.  What is the advantage of this ORBitThreadHint solution
compared to the POAManager holding state?  I ask this because POAManager
states are standard CORBA, so it is well documented in the CORBA
reference.  ORBitThreadHint, on the other hand, is not standard, looking
at the prefix, and probably not documented.  I don't even know which
header to start looking at..
  On the other hand, I had to use ORBit2 private API to get the
POAManager, anyway, so I'm not completely happy with either solution.
  Regards.
-- 
Gustavo Joćo Alves Marques Carneiro
<gjc inescporto pt> <gustavo users sourceforge net>





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