on 1/30/01 1:35 PM, "Sean Legassick" <[EMAIL PROTECTED]> wrote:
> On Tue, Jan 30, 2001 at 10:49:34AM -0800, Jon Stevens wrote:
>> on 1/30/01 9:30 AM, "Sean Legassick" <[EMAIL PROTECTED]> wrote:
>>
>>> Having updated my Turbine with Jon's rework of the services architecture
>>> I've discovered that there's seems to have been introduced a circular
>>> dependency between the initialization of TurbinePullService and the
>>> tools (in my case UIManager).
>>
>> Should be fixed now. Please test.
>
> Yep, looks good to me. Thanks.
Great! Just to clarify, the problem was because what was happening is this:
#1. TurbineServices starts up.
#2. It then starts the TurbinePullService.
#2. TurbinePullService service then starts up the Tool objects
Now, the problem stemmed from the fact that the UIManager Tool object then
made a call to TurbinePull.xxx. The TurbinePull class is essentially static
methods into the TurbinePullService which require that TurbinePullService to
be marked as initialized, otherwise, the Services framework would attempt to
initialize the TurbinePullService again...leading to a circular dependency.
Now the funny thing is that this code was working fine before. I believe
that the *reason* why it was working fine before is because of the way that
we had all of the double lock checking bugs as well as a lack of
synchronization going on within the init methods. This caused the
TurbinePull object to actually return a partially initialized
TurbinePullService object which had the data for the method that the
UIManager was looking for correctly populated!
Because both Rafal and I fixed these sync related issues within the Services
framework, it caused this other bug to actually come up. Wow!
The solution was to have TurbinePullService mark itself as being initialized
*before* it attempts to initialize the Tool objects.
-jon
------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
Problems?: [EMAIL PROTECTED]