Print

Print


  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:

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

                                   Pete

-------------------------------------------------------------------------
Peter Elmer     E-mail: [log in to unmask]      Phone: +41 (22) 767-4644
Address: CERN Division PPE, Bat. 32 2C-14, CH-1211 Geneva 23, Switzerland
-------------------------------------------------------------------------