2011/3/3 Peter Elmer <[log in to unmask]>:
> Hi Chris,
>
> On Thu, Mar 03, 2011 at 08:48:09AM -0600, Chris Jones wrote:
>> As far as I can tell, this can only be turned on via by
>> calling XrdClientEnv::Put() which as far as I can tell appears to
>> be impossible to do at the right time. The moment libXrdClient.so
>> enters the job the static initializer is constructed and in its
>> constructor it checks the environment variable and sets or does not
>> set the fork handling based on what ever value XrdClientEnv has at
>> that time. Since one would have to link with libXrdClient.so in
>> order to be able to call XrdClientEnv::Put() I don't see how we can
>> call 'Put' before the library gets loaded and the fork handler is
>> already set.
>
> Yes, I was worried about that, too, but first I wanted to understand:
Well, I don't really know your framework.
>> > What is the reason for making it disabled
>> > by default? Is there a penalty for using it in the non-fork cases or is
>> > this just "caution" because it is a new/experimental feature?
>
> If it is just new/experimental and "caution" that has it off by default, we
> can also just flip the default in our build. If there is a significant
> penalty for using it in non-fork mode, we'll have to play some more
> elaborate game, perhaps with two libraries/plugins, I guess.
Please look here:
https://savannah.cern.ch/bugs/index.php?78973
Cheers,
Lukasz
|