[issue7946] Convoy effect with I/O bound threads and New GIL
Antoine Pitrou
report at bugs.python.org
Mon Apr 26 11:36:28 CEST 2010
Antoine Pitrou <pitrou at free.fr> added the comment:
Dave,
> In the current implementation, threads perform a timed-wait on a
> condition variable. If time expires and no thread switches have
> occurred, the currently running thread is forced to drop the GIL.
A problem, as far as I can see, is that these timeout sleeps run
periodically, regardless of the actual times at which thread switching
takes place. I'm not sure it's really an issue but it's a bit of a
departure from the "ideal" behaviour of the switching interval.
> A new attribute 'cpu_bound' is added to the PyThreadState structure.
> If a thread is ever forced to drop the GIL, this attribute is simply
> set True (1). If a thread gives up the GIL voluntarily, it is set
> back to False (0). This attribute is used to set up simple scheduling
> (described next).
Ok, so it's not very different, at least in principle, from what
gilinter.patch does, right?
(and actually, the benchmark results look very similar)
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7946>
_______________________________________
More information about the Python-bugs-list
mailing list