     end
   end
 
-  defp profile_checker(_profile = :time, compiled_modules, runtime_modules, fun) do
+  defp profile_init(:time), do: {:time, System.monotonic_time(), 0}
+  defp profile_init(:none), do: :none
+
+  defp profile_checker({:time, _, _}, compiled_modules, runtime_modules, fun) do
     {time, result} = :timer.tc(fun)
     time = div(time, 1000)
     num_modules = length(compiled_modules) + length(runtime_modules)

    result
  end

  defp profile_checker(_profile = nil, _compiled_modules, _runtime_modules, fun) do
    fun.()
  end



  # No more queue, nothing waiting, this cycle is done
  defp spawn_workers([], 0, [], [], result, warnings, state) do
    cycle_return = each_cycle_return(state.each_cycle.())
    state = cycle_timing(result, state)

    case cycle_return do
      {:runtime, dependent_modules} ->
        verify_modules(result, warnings, dependent_modules, state)

