Klamann added the comment:

Yes, I was wrong in my assumption that simply replacing the list comprehension 
with a generator expression would fix the issue.

Nevertheless, there is no need to load the *entire* generator into memory by 
converting it to a list. All we have to read are the first n elements, where n 
is the number of workers that are currently available.

I've implemented an alternative solution that works for me, using wait() and 
notify() from threading.Condition, but I'm not quite sure if this would be the 
best solution for everyone. But I could post it here, if you're intrested.

We should also consider that not strictly evaluating every iterable that is 
passed to the map() function might break existing code that implicitly relies 
on that fact that this is happening (although this is not a documented feature 
of the map function and was probably not the intended behaviour in the first 
place).

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue30323>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to