···167167 # needed to avoid a race where the message is already in the queue so we never unsuspend
168168 #
169169 # TODO: we could perform a yield(0) here to ensure all calls to `receive_yield()` actually yield
170170+ Trinity.Scheduler.yield(10)
170171 case Trinity.Scheduler.receive_loop(receive_fun, ref, unquote(timeout), start) do
171172 # We re-use the same ref to detect a timeout
172173 ^ref -> unquote(timeout_value)