Skip to content

fix run_sync no block problem#1314

Closed
huangwei1024 wants to merge 7 commits intotornadoweb:masterfrom
huangwei1024:master
Closed

fix run_sync no block problem#1314
huangwei1024 wants to merge 7 commits intotornadoweb:masterfrom
huangwei1024:master

Conversation

@huangwei1024
Copy link
Copy Markdown

@coroutine
def _coroutine():
    ret = yield rpc.call_async(method, *args)
    raise Return(ret)
return self.ioloop.run_sync(_coroutine)

the example will raise TimeoutError('Operation timed out after %s seconds' % timeout)
I modified run_sync, it will be run until future was done really or timeout.

···python
@coroutine
def _coroutine():
	ret = yield rpc.call_async(method, *args)
	raise Return(ret)
return self.ioloop.run_sync(_coroutine)
···

the example will raise `TimeoutError('Operation timed out after %s seconds' % timeout)`
I modified `run_sync`, it will be run until future was done really or timeout.
@bdarnell
Copy link
Copy Markdown
Member

Can you provide a complete executable example that demonstrates the problem this solves? You shouldn't have to call start() more than once unless you're calling stop() somewhere that you shouldn't be. It sounds like you might be calling run_sync() while the IOLoop is already running, which won't work.

@bdarnell
Copy link
Copy Markdown
Member

Closing because I can't reproduce any problem here; please reopen if you have more details.

@bdarnell bdarnell closed this Feb 21, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants