Is `ray.kill` actor asynchronous?

I am trying to kill a named actor with ray.kill, I want to know after this is called, whether the actor is immediately deleted, there are no explicit docs for this, so I try to look at the source code: ray/core_worker.cc at ray-2.4.0 · ray-project/ray · GitHub
It appears that killing one actor is asynchronous? Does this means after the ray.kill is called, I never know when the actor will actually be deleted? So I never know when it is safe to create a new actor with the same name?

@fengsp yes, killing is async for performance purpose. I think as a workaround you can just call a function in side that actor and wait for it. When it error out, the actor should have died.