[Python-Dev] Reworking the GIL

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Mon Oct 26 23:45:25 CET 2009

On 04:18 pm, daniel at stutzbachenterprises.com wrote:
>On Mon, Oct 26, 2009 at 10:58 AM, Antoine Pitrou 
><solipsis at pitrou.net>wrote:
>>Er, I prefer to keep things simple. If you have lots of I/O you should
>>use an event loop rather than separate threads.
>On Windows, sometimes using a single-threaded event loop is sometimes
>impossible.  WaitForMultipleObjects(), which is the Windows equivalent 
>select() or poll(), can handle a maximum of only 64 objects.

This is only partially accurate.  For one thing, WaitForMultipleObjects 
calls are nestable.  For another thing, Windows also has I/O completion 
ports which are not limited to 64 event sources.  The situation is 
actually better than on a lot of POSIXes.
>Do we really need priority requests at all?  They seem counter to your
>desire for simplicity and allowing the operating system's scheduler to 
>its work.

Despite what I said above, however, I would also take a default position 
against adding any kind of more advanced scheduling system here.  It 
would, perhaps, make sense to expose the APIs for controlling the 
platform scheduler, though.


More information about the Python-Dev mailing list