[Python-ideas] Flagging blocking functions not to be used with asyncio
Yury Selivanov
yselivanov.ml at gmail.com
Fri Oct 7 14:32:46 EDT 2016
More information about the Python-ideas mailing list
Fri Oct 7 14:32:46 EDT 2016
- Previous message (by thread): [Python-ideas] Flagging blocking functions not to be used with asyncio
- Next message (by thread): [Python-ideas] Flagging blocking functions not to be used with asyncio
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2016-10-07 1:31 PM, Giampaolo Rodola' wrote: > On Fri, Oct 7, 2016 at 6:52 PM, Yury Selivanov <yselivanov.ml at gmail.com> > wrote: > >> On 2016-10-07 11:16 AM, Guido van Rossum wrote: >> >> Maybe a simpler approach would be to write a linter that checks for a >>> known list of common blocking functions, and anything that calls those >>> automatically gets the same property? >>> >> What if somebody uses logging module and logs to a file? I think this is >> something that linters can't infer (how logging is configured). >> >> One way to solve this would be to monkeypatch the io and os modules >> (gevent does that, so it's possible) to issue a warning when it's used in >> an asyncio context. This can be done as a module on PyPI. >> >> Another way would be to add some kind of IO tracing hooks to CPython. > > How about something like this? > http://www.tornadoweb.org/en/stable/ioloop.html#tornado.ioloop.IOLoop.set_blocking_signal_threshold > Yes, we already have a similar mechanism in asyncio -- loop.slow_callback_duration property that is used in debug mode. The thing it isn't really precise, as you can have a lot of relatively fast blocking calls that harm performance, but complete faster than slow_callback_duration. Yury
- Previous message (by thread): [Python-ideas] Flagging blocking functions not to be used with asyncio
- Next message (by thread): [Python-ideas] Flagging blocking functions not to be used with asyncio
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list