Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I didn't explain it well in my comment. Consider the following example:

def blocking(): time.sleep(5)

@app.get("/") async def index(): blocking()

The `blocking` function will blocking the event loop. This is something you need to be aware of. Gist with a few scenarios: https://gist.github.com/lukin0110/0074ec5325224674010193bb95...



Isn't the point that you should be using `def`, not `async def` here?


Yes. But this is a very basic example. When you have an async function defined with `await` statements in it and later on in the function you do a call to a `blocking` function you need to be aware that you have to run in the threadpool.

You don't always know that a function call is blocking, because you don't always know what is happening behind the scenes of that function and on what it depends.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: