eventlet/eventlet — pull request #24 by edwardgeorge (2013-04-05 22:37:55+00:00)
Title: eventlet.green.subprocess blocks on python 2.7

`eventlet.green.subprocess.Popen.communicate()` was broken in python 2.7 because the usage of the `select` module was moved from `_communicate` into two other methods `_communicate_with_select` and `_communicate_with_poll`.

we currently patch only `_communicate`'s globals: https://github.com/eventlet/eventlet/blob/master/eventlet/green/subprocess.py#L58
this changeset also patches the two new functions.

it's fairly hard to test because `select.select` seems to block `SIGALARM`, I couldn't get `debug.hub_blocking_detection()` to fire whilst the code was being blocked on my darwin system. (we don't actually have any current tests for this module, we run stdlib's)

it can be demonstrated here with a nice deadlock: https://gist.github.com/edwardgeorge/5323231