Erlang Elixir GenServer教程中的计时错误?

Erlang Elixir GenServer教程中的计时错误?,erlang,elixir,gen-server,Erlang,Elixir,Gen Server,我正在学习Elixir“入门”教程,其中使用了以下代码段: test "removes buckets on exit", %{registry: registry} do KV.Registry.create(registry, "shopping") {:ok, bucket} = KV.Registry.lookup(registry, "shopping") Agent.stop(bucket) assert KV.Registry.lookup(registry, "s

我正在学习Elixir“入门”教程,其中使用了以下代码段:

test "removes buckets on exit", %{registry: registry} do
  KV.Registry.create(registry, "shopping")
  {:ok, bucket} = KV.Registry.lookup(registry, "shopping")
  Agent.stop(bucket)
  assert KV.Registry.lookup(registry, "shopping") == :error
end

现在,
create/2
使用
cast
操作,而
lookup
使用
call
。这意味着执行一个异步调用,然后紧接着执行一个同步调用,该调用假定异步操作已成功执行。当代码本身正确时,计时问题是否会导致测试失败,或者我是否遗漏了
cast
call
的某些方面?

因为GenServer按顺序处理所有消息,
lookup
调用将一直阻塞,直到上一个
cast
完成,因此不会出现计时问题