# LibTmux::Async::Transport::new

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

```
sub new($class, %args)
```

`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.

Ppoll blocks watched signals outside its atomic wait. Its shared SIGCHLD watch can outlive this transport. `close` leaves the caller-selected loop and its signal policy intact. Do not change the backend or its wait mask while jobs or cleanup remain active. Async children unblock only SIGCHLD before process supervision; other mask bits remain unchanged in the child. This lets a new tmux daemon observe pane exits without changing synchronous core's mask policy.

## Methods

## Parameters

- `args`
