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