Core LibraryAPI Reference

Choose documentation 3

latest

Current version

latest
English

Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

method libtmux-dotnet latest

TmuxWaitChannel.DisposeAsync

Namespace LibTmux.TmuxWaitChannel.DisposeAsync LibTmux

Withdraws the waiter from tmux.

View as Markdown

Source and package
Module
LibTmux
Declared in
TmuxWaitChannel
Package
LibTmux
Source
src/LibTmux/Waiting/TmuxWaitChannel.cs
DisposeAsync ( ) → ValueTask
method [source]

Description#

Signalling the channel is how a waiter withdraws: tmux wakes the registered waiters and, because the list was not empty, leaves the pending flag down. Nothing else can deregister one.

A signal landing between the check below and the withdrawal is woken by this waiter and then re-raised by the withdrawal itself, because by then no waiter is left to take it. That leaves the channel pending rather than empty — an extra wake for the next caller, never a lost one. tmux cannot say which signal completed this waiter in that race.

A signal wakes every waiter on the channel and tmux offers no way to deregister one on its own, so withdrawing here also completes any other wait open on the same channel. Keep one open wait per channel.

A wait that did not dispatch or returned a command failure never registered, so disposal does not signal it. Close uses a one-second withdrawal deadline, then ends the owned local client. Failed withdrawal reports unknown remote registration; unrelated waiter failures remain observable.

Esc

Type to search.