[pypy-issue] Issue #2768: eventlet.monkey_patch breaks threading.Event.wait (pypy/pypy)

Antonio Cuni issues-reply at bitbucket.org
Thu Mar 1 11:23:57 EST 2018


New issue 2768: eventlet.monkey_patch breaks threading.Event.wait
https://bitbucket.org/pypy/pypy/issues/2768/eventletmonkey_patch-breaks

Antonio Cuni:

This code:
```python
from eventlet import monkey_patch
monkey_patch()
from threading import Event
ev = Event()
ev.wait(timeout=10)
```

results in this traceback:
```
Traceback (most recent call last):
  File "eventbug.py", line 5, in <module>
    ev.wait(timeout=10)
  File "/extra/pypy-release/pypy2-v5.10.0-linux64/lib-python/2.7/threading.py", line 610, in wait
    self.__cond.wait(timeout)
  File "/extra/pypy-release/pypy2-v5.10.0-linux64/lib-python/2.7/threading.py", line 347, in wait
    gotit = waiter._py3k_acquire(True, timeout)
AttributeError: 'Semaphore' object has no attribute '_py3k_acquire'
```

The call to `_py3k_acquire` was added by commit 8d88f18, but I'm not sure to understand what was the real underlying reason to do so: @arigo , do you remember?

We should either:
1. fix our code so that it doesn't break if `_py3k_acquire` is not present
2. fix it in eventlet and make a PR, hoping they accept it




More information about the pypy-issue mailing list