On Sep 7, 2010, at 7:13 PM, Jason Garber wrote: > Just from experience... Yes. I use threading.local extensively with > mod_wsgi. Check out threading.enumerate() sometime, and you will see the > actual python threads in use, despite the fact they are created outside of > python. > > Now, I was using daemon mode when last testong, so maybe someone else can > comment on.embedded mode... But I suspect that it will work as advertised in > any event. > >
If daemon mode gives wsgi a dedicated process, them I'm fairly sure it'd work fine. But because this code is going into the web2py framework, and not a specific application where I have control over deployment, I'd like to be sure that it's thread-safe in all deployment modes. > Jason Garber > > >> On Sep 7, 2010 5:59 PM, "Jonathan Lundell" <[email protected]> wrote: >> >> Background: I've been writing an enhancement to the web2py application >> framework, which for purposes of this question can (I think) be viewed as >> just another wsgi app. >> >> The legacy code has a module variable that contains a set of URL-rewriting >> parameters. That variable is referenced at various points in a requests >> lifetime. The enhancement (I won't bother with a lot of detail) establishes >> multiple sets of these parameters. A set is chosen when a request first >> comes in, and is used for its lifetime. >> >> I think it's obvious that this isn't thread-safe. The easiest and most >> elegant fix would be to use threading.local to create a bit of thread-local >> storage to store the parameters during a request. >> >> This should work fine with web2py's embedded server (Rocket, which is native >> Python and uses the threading module), and I assume it would work for >> threads created by mod_wsgi. >> >> What I'm less certain of is whether it will also be safe for Apache worker >> threads. I'm frankly more than a little confused on the subject, and I don't >> really understand the mechanism that threading.local is using in the first >> place. >> >> So: a) should threading.local be thread-safe against Apache worker threads, >> and b) if not, is there another approach that might work better? That is, >> some other approach to thread-local storage that would work with Apache >> threads. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "modwsgi" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/modwsgi?hl=en. >> > > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/modwsgi?hl=en. -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en.
