Race condition fix (probably)

pull/1184/head
Rick Carlino 2020-03-31 10:58:40 -05:00
parent 06323242c2
commit aa6f3f4ad1
1 changed files with 4 additions and 7 deletions

View File

@ -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 ->