# LibTmux.Control.submit/3

- **Module:** LibTmux
- **Package:** libtmux
- **Language:** Elixir
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-elixir/blob/66b9b1c3f3f3186428abdfda2c76f5cf87446710/lib/libtmux/control.ex#L208
- **Page:** https://libtmux.org/en/elixir/latest/reference/libtmux-control-submit-3/

```
submit(control, request, options \\ [])
@spec submit(t(), LibTmux.Control.Request.t(), [
        call_option()
      ]) ::
        {:ok, LibTmux.Operation.t()}
        | {:error, LibTmux.Error.t()}
```

Admits one request and returns its retained operation handle.

`timeout` defaults to 5000ms and covers validation, admission, queueing,
writes and replies under one monotonic deadline. Request binaries are
detached before publication. Invalid input, overload or stale context before
admission returns a no-write error. Every successful admission returns its
Operation, even if its context disappears before publication. Inspect that
handle for the eventual canonical result or an explicit lost-context error.

Closing the connection can affect sibling operations. Command replies do
not prove external program exit. Caller timeout does not authorize replay.

See the [worked example](advanced-execution.html).

## Parameters

- `control` (`t()`)
- `request` (`LibTmux.Control.Request.t()`)
- `options` (`[call_option()]`)
