defmodule Spry do
@moduledoc """
Documentation for `Spry`.
"""
defp spry() do
require IEx;
IEx.configure(inspect: [limit: :infinity])
all_pids = :application.info[:running]
suspended = Enum.reduce all_pids, [], fn process, suspended ->
name = elem(process, 0)
pid = elem(process, 1)
suspended = cond do
pid == :undefined ->
suspended
name == :iex ->
suspended
# Don't suspend our own project - might not be necessary!
# name == Mix.Project.get!().project[:app] ->
# suspended
# Don't suspend ourself
pid == self() ->
suspended
true ->
:erlang.suspend_process(pid)
suspended ++ [pid]
end
suspended
end
IEx.pry()
Enum.map suspended, fn pid ->
:erlang.resume_process(pid)
end
end
end