Files
deb-python-eventlet/tests/isolated/patcher_socketserver_selectors.py
Sergey Shepelev 7f08dfd250 little clean up
2016-02-12 20:42:03 +05:00

31 lines
1.0 KiB
Python

__test__ = False
if __name__ == '__main__':
import eventlet
eventlet.monkey_patch()
from eventlet.support.six.moves.BaseHTTPServer import (
HTTPServer,
BaseHTTPRequestHandler,
)
import threading
server = HTTPServer(('localhost', 0), BaseHTTPRequestHandler)
thread = threading.Thread(target=server.serve_forever)
# Before fixing it the code would never go pass this line because:
# * socketserver.BaseServer that's used behind the scenes here uses
# selectors.PollSelector if it's available and we don't have green poll
# implementation so this just couldn't work
# * making socketserver use selectors.SelectSelector wasn't enough as
# until now we just failed to monkey patch selectors module
#
# Due to the issues above this thread.start() call effectively behaved
# like calling server.serve_forever() directly in the current thread
#
# Original report: https://github.com/eventlet/eventlet/issues/249
thread.start()
server.shutdown()
print('pass')