 
       # So we can start all sync modules
       [head | tail] ->
-        spawn_modules(config, [head], tail, running, async_stop_time)
+        spawn_modules(config, [head], tail, running, async_stop_time(async_stop_time))
 
       # No more modules, we are done!
       [] ->
-        async_stop_time
-    end
-  end
+        async_stop_time(async_stop_time)
+    end
+  end
+
+  defp async_stop_time(false = _async_once?), do: nil
+  defp async_stop_time(true = _async_once?), do: System.monotonic_time()
+  defp async_stop_time(async_stop_time), do: async_stop_time
 
   # Loop expecting down messages from the spawned modules.
   #


      true ->
        modules = ExUnit.Server.take_sync_modules()
        loop(config, modules, running, async_once? and System.monotonic_time())
    end
  end


    end

    async_us =
      async_stop_time &&
        System.convert_time_unit(async_stop_time - start_time, :native, :microsecond)

    run_us = System.convert_time_unit(stop_time - start_time, :native, :microsecond)
    times_us = %{async: async_us, load: load_us, run: run_us}
