Why is calling sync
from a running loop a bad idea?
#1570
-
Hi all! I just got this error: filesystem_spec/fsspec/asyn.py Line 80 in 05e7d80 I'm wondering why that exception is there in the first place? Thank you |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 4 replies
-
Unfortunately, the event loop in asyncio is non-reentrant. That means, you cannot say "hey loop, run this" from within the loop. The only way to do that is
|
Beta Was this translation helpful? Give feedback.
-
I also go this error when using fsspec in HoloViz Panel. I'll probably have to switch to async interface. |
Beta Was this translation helpful? Give feedback.
Unfortunately, the event loop in asyncio is non-reentrant. That means, you cannot say "hey loop, run this" from within the loop. The only way to do that is
await
, but you can't do that in a non-async function. So you must do one or the other: usesync()
, orawait
on async methods.sync()
works by using a dedicated IO thread, since we can wait on thread signaling primitives liveevent
in a normal function. If you are running your whole application as async, you don't need another thread.