geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Hogstrom <>
Subject Re: An interesting discovery about CSSBean.
Date Sat, 15 Jul 2006 04:23:35 GMT
+1 ...good detective work Rick.

Rick McGuire wrote:
> I've been taking some hard looks at all of the places where Geronimo 
> creates/configures ORB instances as part of an effort to enable Geronimo 
> for using the Yoko ORB.  As a result, I've made an interesting discovery 
> about how CSSBean is working that might warrant a 1.1.1 bug fix.  The 
> first part of the discovery was an issue I raised a couple days ago 
> about CSSBean creating 2 ORB instances where 1 would be sufficient.  
> That change simplified the configuration, and also eliminated one of the 
> two threads that CSSBean is creating.
> The new discovery is that BOTH of the threads that CSSBean creates are 
> unncessary.  The two threads that CSSBean creates merely make a call to 
> "", assuming that run() somehow started ORB execution, and 
> since it was a blocking call, it needed to work on a separate thread.  A 
> reasonable assumption,  but that's not the purpose of run() at all!  The 
> ORB run() method:
>    This operation blocks the current thread until the ORB has completed
>    the shutdown process, initiated when some thread calls |shutdown|.
>    It may be used by multiple threads which get all notified when the
>    ORB shuts down.
> run() doesn't start anything up at all, it merely waits until the ORB is 
> destroyed.  It is not necessary to call run() to use the ORB as a 
> client, so those two threads don't do anything but sit there and wait 
> for the two ORB instances to be destroyed.  They're not necessary for GC 
> purposes, because the CSSBean is holding the references (and in fact, is 
> the code that will eventually issue the destroy() call that will 
> terminate the 2 threads).  As part of the Yoko changes, I've been 
> reworking this, but there's a pretty good resource boost to be gained, 
> so it might be worthwhile applying at least the thread removal to the 
> 1.1.1 base.
> Rick

View raw message