Print

Print


On Mar 3, 2011, at 8:56 AM, Lukasz Janyst wrote:

> 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.
> 

I think Chris's question is different: if the fork handlers are added at library load time, then we can't call XrdClientEnv::Put until *after* the fork handlers are already installed.

In other words: Chris is asking if it is possible to do what you describe without really hacking the linker.

Brian