summaryrefslogtreecommitdiff
path: root/eventlet/green/select.py
diff options
context:
space:
mode:
Diffstat (limited to 'eventlet/green/select.py')
-rw-r--r--eventlet/green/select.py16
1 files changed, 6 insertions, 10 deletions
diff --git a/eventlet/green/select.py b/eventlet/green/select.py
index 60301d3..f177502 100644
--- a/eventlet/green/select.py
+++ b/eventlet/green/select.py
@@ -1,8 +1,8 @@
-__select = __import__('select')
-error = __select.error
-from eventlet.greenthread import getcurrent
+import eventlet
from eventlet.hubs import get_hub
from eventlet.support import six
+__select = eventlet.patcher.original('select')
+error = __select.error
__patched__ = ['select']
@@ -36,7 +36,7 @@ def select(read_list, write_list, error_list, timeout=None):
raise TypeError("Expected number for timeout")
hub = get_hub()
timers = []
- current = getcurrent()
+ current = eventlet.getcurrent()
assert hub.greenlet is not current, 'do not call blocking functions from the mainloop'
ds = {}
for r in read_list:
@@ -56,10 +56,6 @@ def select(read_list, write_list, error_list, timeout=None):
original = ds[get_fileno(d)]['write']
current.switch(([], [original], []))
- def on_error(d, _err=None):
- original = ds[get_fileno(d)]['error']
- current.switch(([], [], [original]))
-
def on_timeout2():
current.switch(([], [], []))
@@ -77,9 +73,9 @@ def select(read_list, write_list, error_list, timeout=None):
try:
for k, v in six.iteritems(ds):
if v.get('read'):
- listeners.append(hub.add(hub.READ, k, on_read, on_error, lambda x: None))
+ listeners.append(hub.add(hub.READ, k, on_read, current.throw, lambda: None))
if v.get('write'):
- listeners.append(hub.add(hub.WRITE, k, on_write, on_error, lambda x: None))
+ listeners.append(hub.add(hub.WRITE, k, on_write, current.throw, lambda: None))
try:
return hub.switch()
finally: