Race condition fix (probably)
parent
06323242c2
commit
aa6f3f4ad1
|
@ -23,6 +23,7 @@ defmodule Helpers do
|
|||
# Maybe I could use `start_supervised`?
|
||||
# https://hexdocs.pm/ex_unit/ExUnit.Callbacks.html#start_supervised/2
|
||||
|
||||
@wait_time 25
|
||||
# Base case: We have a pid
|
||||
def wait_for(pid) when is_pid(pid), do: continue_waiting(pid)
|
||||
# Failure case: We failed to find a pid for a module.
|
||||
|
@ -34,17 +35,13 @@ defmodule Helpers do
|
|||
wait(pid, Process.info(pid, :message_queue_len))
|
||||
end
|
||||
|
||||
defp wait(_pid, {:message_queue_len, 0}), do: :ok
|
||||
defp wait(_pid, {:message_queue_len, 0}), do: Process.sleep(@wait_time)
|
||||
|
||||
defp wait(pid, {:message_queue_len, n}) when n < 20 do
|
||||
Process.sleep(100)
|
||||
defp wait(pid, {:message_queue_len, _n}) do
|
||||
Process.sleep(@wait_time)
|
||||
continue_waiting(pid)
|
||||
end
|
||||
|
||||
defp wait(pid, {:message_queue_len, n}) do
|
||||
raise "No longer waiting on #{inspect(pid)} after #{n} attempts"
|
||||
end
|
||||
|
||||
defmacro expect_log(message) do
|
||||
quote do
|
||||
expect(FarmbotCore.LogExecutor, :execute, fn log ->
|
||||
|
|
Loading…
Reference in New Issue