Skip to content

Commit

Permalink
Fix server "Bad file descriptor" error under gevent 1.1, #170
Browse files Browse the repository at this point in the history
In gevent 1.1, underlying socket is closed when WSGI handler returns, so we need to keep WSGI handler runing until websocket handler returns.

gevent/gevent#633
  • Loading branch information
yiting.huang committed Dec 15, 2015
1 parent 52d04b9 commit 9b561b2
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion ws4py/server/geventserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@ def run_application(self):

ws = self.environ.pop('ws4py.websocket', None)
if ws:
self.server.pool.track(ws)
ws_greenlet = self.server.pool.track(ws)
# issue #170
# in gevent 1.1 socket will be closed once application returns
# so let's wait for websocket handler to finish
ws_greenlet.join()
else:
gevent.pywsgi.WSGIHandler.run_application(self)

Expand Down

0 comments on commit 9b561b2

Please sign in to comment.