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