I’m working on a project that awaits an :ok
signal while also trapping and awaiting any exits that happen midway. Looks something like this:
Process.flag(:trap_exit, true)
# Call a process that will send() back :ok after some time
receive do
:ok -> :nice
{:EXIT, pid, reason} -> :bad
{:EXIT, reason} -> :bad
after
10_000 ->
:timeout
end
The issue is that if there is an :EXIT that happened prior to running this function, it will instantly return :bad
. So I was thinking about adding something like :c.flush()
to clear out the mailbox before we start the receive, however I’m not really sure if this is really a good idea. Or perhaps I’m going down some dark path that I shouldn’t go into…
Would love to hear your opinion