mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-10-10 05:25:57 +08:00
Fix unique task test race condition (#863)
This commit is contained in:
parent
dbe4fdeda4
commit
67952b07be
1 changed files with 8 additions and 8 deletions
|
@ -3,7 +3,7 @@ defmodule Livebook.UniqueTaskTest do
|
||||||
|
|
||||||
alias Livebook.UniqueTask
|
alias Livebook.UniqueTask
|
||||||
|
|
||||||
test "run/2 only awaits existing function call when the given key is taken" do
|
test "run/2 only awaits existing function call when the given key is taken", %{test: test} do
|
||||||
parent = self()
|
parent = self()
|
||||||
|
|
||||||
fun = fn ->
|
fun = fn ->
|
||||||
|
@ -15,12 +15,12 @@ defmodule Livebook.UniqueTaskTest do
|
||||||
end
|
end
|
||||||
|
|
||||||
spawn_link(fn ->
|
spawn_link(fn ->
|
||||||
result = UniqueTask.run("key1", fun)
|
result = UniqueTask.run("#{test}-key1", fun)
|
||||||
send(parent, {:result1, result})
|
send(parent, {:result1, result})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
spawn_link(fn ->
|
spawn_link(fn ->
|
||||||
result = UniqueTask.run("key1", fun)
|
result = UniqueTask.run("#{test}-key1", fun)
|
||||||
send(parent, {:result2, result})
|
send(parent, {:result2, result})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ defmodule Livebook.UniqueTaskTest do
|
||||||
assert_receive {:result2, :ok}
|
assert_receive {:result2, :ok}
|
||||||
end
|
end
|
||||||
|
|
||||||
test "run/2 runs functions in parallel when different have different keys" do
|
test "run/2 runs functions in parallel when different have different keys", %{test: test} do
|
||||||
parent = self()
|
parent = self()
|
||||||
|
|
||||||
fun = fn ->
|
fun = fn ->
|
||||||
|
@ -45,17 +45,17 @@ defmodule Livebook.UniqueTaskTest do
|
||||||
end
|
end
|
||||||
|
|
||||||
spawn_link(fn ->
|
spawn_link(fn ->
|
||||||
result = UniqueTask.run("key1", fun)
|
result = UniqueTask.run("#{test}-key1", fun)
|
||||||
send(parent, {:result1, result})
|
send(parent, {:result1, result})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
spawn_link(fn ->
|
spawn_link(fn ->
|
||||||
result = UniqueTask.run("key2", fun)
|
result = UniqueTask.run("#{test}-key2", fun)
|
||||||
send(parent, {:result2, result})
|
send(parent, {:result2, result})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
assert_receive {:ping_from_task, task1_pid}, 2000
|
assert_receive {:ping_from_task, task1_pid}
|
||||||
assert_receive {:ping_from_task, task2_pid}, 2000
|
assert_receive {:ping_from_task, task2_pid}
|
||||||
|
|
||||||
send(task1_pid, :pong)
|
send(task1_pid, :pong)
|
||||||
send(task2_pid, :pong)
|
send(task2_pid, :pong)
|
||||||
|
|
Loading…
Add table
Reference in a new issue