---
name: "signal"
section: "3tcl"
platform: "linux"
package: "tcl-signal"
version: "1.4.5-1+b3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/signal/3tcl"
---

# signal(3tcl)

dynamically loadable signal handling for Tcl/Tk

## NAME

signal - dynamically loadable signal handling for Tcl/Tk

## SYNOPSIS

**signal** *(add\|delete\|print\|version) \[options\]*

## COMMANDS

### add signo proc \[-async\]

*Adds a signal handler for signal signo through proc proc.* *Signals can be provided by number, or the most common ones are provided by* *name (e.g., SIGHUP).* *The proc is any Tcl procedure, and it is evaluated when the signal comes in.* *It will be provided no arguments.*

*Signal handlers have Posix semantics - they persist until reset.*

*If*  **-async** *is used, the signal handler is created using*  **Tcl\_AsyncCreate().** *Checks for the signal are very frequent (each evaluation) using this* *technique, but one doesn't know quite where evaluation is or how to handle* *errors in this situation. The code will evaluate the provided procedure in*  *the current interpreter if available, and in the interpreter which added the* *signal handler otherwise. At least until a better scheme is suggested.*

*The*  **-async** *is especially useful to interrupt "runaway" procs, or to cause a* *quick exit; the default mechanism simply waits for another MainLoop cycle.*

### signal delete signo

*Restores handling of signal signo to the default (* **SIG\_DFL** *).*

### signal print

*Prints the handling of all signals with handlers. Formatted as*  \
  *signal ----\> procedure or as*\
  *signal !---\> procedure*

*if the signal is handled asynchronously*

### signal print signo

*Prints the procedure for handling signal signo.* *Prints the word*  **UNHANDLED** *if no signal handler is active for that signal.*

### signal version

*Returns the string representing the current version of the package*

## AUTHOR

*Michael Schwartz \<mschwart@nyx.net\>. Tilman Kranz \<tilde@tk-sls.de\> patched* *this for wider portability on Linux*
