I second the statement about multi-threading headaches if you use globals in this way.
In Aquarium, since I have to support different threading API's (no threads, Python threads, coroutines), I put everything in a Context object, and then pass that Context object to everything's constructor. This isn't as bad as it sounds. It happens automatically when I call aquariumFactory(moduleName, *args, **kargs) which does a dynamic import, instantiates the class passing the Context object and the additional args, and then returns the instance. Best Regards, -jj On 9/9/05, Robert Brewer <[EMAIL PROTECTED]> wrote: > Timothy Soehnlin wrote: > > I am working on an ongoing project, and recently > > merged all the different segments of the request into a > > single variable. To propogate that variable,across function > > calls, and imported modules, I had to pass it as a variable > > to each function. As is visible, this is a very redundant, > > and unnecessary action. I recently discovered that I could > > imbed the variable into __builtins__, and the variable is > > accessible throughout the entire request process. This seems > > to work so far when the request is in CGI mode and when the > > request is being handled by mod_python. I was wondering if > > anyone out there has dealt with this before, and knows > > whether or not there is an issue in using __builtins__ as a > > way of handling global variables, especially in respect to > > the way mod_python handles the use of variables. I have no > > desire for the variable to be overwritten, or redefined in > > the middle of a request. > > If you ever make your application multithreaded, that approach is going > to cause problems, as competing threads overwrite your request object's > attributes. You can do what CherryPy did, and use global threadlocal > objects instead. Or you could save yourself the headache and just use > CherryPy to develop your app. ;) > > > Robert Brewer > System Architect > Amor Ministries > [EMAIL PROTECTED] > _______________________________________________ > Web-SIG mailing list > Web-SIG@python.org > Web SIG: http://www.python.org/sigs/web-sig > Unsubscribe: http://mail.python.org/mailman/options/web-sig/jjinux%40gmail.com > -- I have decided to switch to Gmail, but messages to my Yahoo account will still get through. _______________________________________________ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com