# LibTmux::Async::Transport

- **Module:** LibTmux::Async
- **Package:** LibTmux-Async
- **Language:** Perl
- **Kind:** class
- **Source:** https://github.com/libtmux/libtmux-perl/blob/352715a4fa66a96eed7763b90daaa536aa2f121d/packages/async/lib/LibTmux/Async/Transport.pm#L1
- **Page:** https://libtmux.org/en/perl/latest/reference/libtmux-async-transport/

```
package LibTmux::Async::Transport;
```

Bounded asynchronous process execution

## Members

### Other members

- [`close`](/en/perl/latest/reference/libtmux-async-transport-close/) (method): Begin idempotent shutdown and return a fresh observer Future. New admissions fail with [`Closed`](/en/perl/latest/reference/libtmux-async-x-closed/); queued requests are cancelled without dispatch and running jobs are cancelled. Cancelling an observer never cancels private cleanup. Only successful `is_done` completion proves all owned jobs, pipes, and watchers have completed cleanup. The borrowed loop remains usable. Callers must keep driving it through shutdown.
- [`execute`](/en/perl/latest/reference/libtmux-async-transport-execute/) (method): Accepts the same literal process arguments as [`"run" in LibTmux::Transport`](/en/perl/latest/reference/libtmux-transport-run/). Returns a [Future](https://metacpan.org/pod/Future) yielding one [`command result`](/en/perl/latest/reference/libtmux-commandresult/). Typed core exceptions remain the failure value. Queue overflow fails with [`QueueFull`](/en/perl/latest/reference/libtmux-async-x-queuefull/) before dispatch. The backend is checked again at admission and launch. Child preparation failures retain a typed diagnostic and `dispatched` false, with supervisor exit still required before cleanup completes.
- [`new`](/en/perl/latest/reference/libtmux-async-transport-new/) (method): `new(loop => $loop, max_concurrent => 4, max_queue => 64)` borrows an [IO::Async::Loop::Ppoll](https://metacpan.org/pod/IO::Async::Loop::Ppoll) backed by [IO::Ppoll](https://metacpan.org/pod/IO::Ppoll). Construct that class explicitly; automatic loop selection can choose an unsupported backend. Other classes, a substituted poll implementation, or a wait mask blocking SIGCHLD throw [`Unsupported`](/en/perl/latest/reference/libtmux-x-unsupported/) before dispatch. The loop owns supervisor reaping; competing external all-child reapers are unsupported. The library never runs, stops, or replaces it.
