# `Snakepit.Internal.AsyncFallback`
[🔗](https://github.com/nshkrdotcom/snakepit/blob/v0.13.0/lib/snakepit/internal/async_fallback.ex#L1)

Supervised task helpers with automatic fallback to bare monitors.

When `TaskSupervisor` is unavailable (not yet started or crashed), these
helpers fall back to `spawn_monitor` instead of crashing the caller.

# `fallback_mode`

```elixir
@type fallback_mode() :: :monitored | :fire_and_forget
```

# `fallback_reason`

```elixir
@type fallback_reason() :: {:rescue, term()} | {:exit, term()}
```

# `monitored_task`

```elixir
@type monitored_task() :: {:ok, pid(), reference()}
```

# `start_child_with_fallback`

```elixir
@spec start_child_with_fallback(
  Supervisor.supervisor(),
  (-&gt; term()),
  keyword()
) :: :ok
```

# `start_monitored`

```elixir
@spec start_monitored((-&gt; term())) :: monitored_task()
```

# `start_monitored_fire_and_forget`

```elixir
@spec start_monitored_fire_and_forget((-&gt; term())) :: {pid(), reference()}
```

# `start_nolink_with_fallback`

```elixir
@spec start_nolink_with_fallback(
  Supervisor.supervisor(),
  (-&gt; term()),
  keyword()
) :: monitored_task()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
