I'm not sure this makes sense. Given a reactor with 200 modules, it
would mean you would be downloading all the plugins and constructing
all the realms before even starting on the first module ?

Re-using realms across modules is great, but pre-constructing
everything would give an uneccessary performance hit ?

Kristian

2012/7/26 Jason van Zyl <[email protected]>:
> Could we not adjust such that after the execution plan is created, prepare 
> all the class realms required by the plan and once constructed left immutable 
> during the actual execution of the plan. I can't quite remember but I'm not 
> sure why we need multiple threads constructing realms with the execution plan 
> in hand. Prepare the realms according to the plan, make them immutable and 
> use them throughout the session.
>
> On Jul 26, 2012, at 8:44 AM, Kristian Rosenvold wrote:
>
>> There is a race condition in parallel builds that occurs related to
>> this piece of code:
>>
>> http://maven.apache.org/ref/3.0.4/maven-core/xref/org/apache/maven/classrealm/DefaultClassRealmManager.html#75
>>
>> The thing is, for some reason, there's a loop that retries the class
>> realm generation with a random suffix if the class realm already
>> exists. In a parallel run, there will be multiple threads requesting
>> the same realm-id, which semantically should map to the same instance
>> of the class realm.
>>
>> (Most plugins do not really mind if there's a duplicate class realm
>> every now and then, but some take it very seriously ;)
>>
>> I'm tempted to change the semantics of the "newRealm" method to
>> "getOrCreateRealm", since that seems to be the correct semantics no
>> matter what. I've tried tracking the origin of the while loop, and it
>> seems to be very old. Anyone have any idea of what purpose it served ?
>>
>> Kristian
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder & CTO, Sonatype
> Founder,  Apache Maven
> http://twitter.com/jvanzyl
> ---------------------------------------------------------
>
> Simplex sigillum veri. (Simplicity is the seal of truth.)
>
>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to