Blocking outside of julia, like uv_thread_join does can deadlock on the GC, but in other places too. Julia expects to be in control of all blocking it’s threads can do. The foreign thread support is to allow from threads to call into julia and out of it. But they don’t participate in the scheduler, which is why there isn’t an official API. threaded_region can have some performance cost associated with it but we’ve experimented with it in the past and may do it again in the future.
1 Like