On 8/12/2009 9:45 AM, Preston Landers wrote:
Someone had mentioned needing to restrict the worker pool to a single
thread but indicated they didn't know how to do that.  I searched
around MSDN and couldn't find anything relevant.  I also checked the
PyWin32 ISAPI code and didn't see anything that appeared to start a
new thread.  Does anyone know how to force single threading in this
scenario?

Finding out where the thread was created should be your first goal. You are correct that pywin32's ISAPI support doesn't create threads except when establishing that thread-pool - which only happens when you explicitly sub-class that threaded implementation.

Obviously though, I've no insight into what ISAPI itself does, but it is reasonable to assume it uses threading to ensure a single ISAPI request doesn't block the entire server. thread.get_ident() will tell you indirectly how many threads you are dealing with.

The other option is just to use a lock - create a global lock object and have every request acquire it and release it when done. You should then find only 1 thread is ever actually running in your code while the rest are blocked waiting for the lock. As noted above though, this may severely impact performance...

HTH,

Mark
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to