---
name: "XtAppAddSignal"
section: "3x"
platform: "linux"
package: "libxt-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/XtAppAddSignal/3x"
---

# XtAppAddSignal(3x)

register and remove a signal source

## NAME

XtAppAddSignal, XtRemoveSignal, XtNoticeSignal - register and remove a signal source

## SYNTAX

XtSignalId XtAppAddSignal(XtAppContext *app\_context*, XtSignalCallbackProc *proc*, XtPointer *client\_data*);

void XtRemoveSignal(XtSignalId *id*);

void XtNoticeSignal(XtSignalId *id*);

## ARGUMENTS

- *app\_context*

  Specifies the application context.

- *client\_data*

  Specifies the argument that is to be passed to the specified procedure when a signal has been raised.

- *id*

  Specifies the ID returned from the corresponding *XtAppAddSignal* call.

- *proc*

  Specifies the procedure that is to be called when the signal has been  raised.

## DESCRIPTION

The *XtAppAddSignal* function initiates a mechanism for handling signals within the context of the Intrinsics. Prior to establishing an operating system dependent  signal handler the application may call *XtAppAddSignal* and store the returned *id* in a place accessible to the signal  handler.

Upon receipt of a signal from the operating system, the application may  call  *XtNoticeSignal* passing the *id* returned by the call to *XtAppAddSignal*.

*XtNoticeSignal* is the only Intrinsics function that can safely be called from a signal handler. If *XtNoticeSignal* is called multiple times before the Intrinsics are able to invoke the registered callback, the callback is only called once. Logically the Intrinsics maintain \`\`pending'' for each registered callback. This flag is initially *False* and is set to *True* by *XtNoticeSignal*; the Intrinsics invoke the callback whenever the flag is *True*, and the flag is set to *False* just before the callback is invoked.

The *XtRemoveSignal* function is called to remove the specified Intrinsics signal handler. The  client should disable the source of the signal before calling *XtRemoveSignal*.

## SEE ALSO

XtAppAddTimeOut(3Xt),XtAppAddInput(3Xt),XtAppAddWorkProc(3Xt)\
 *X Toolkit Intrinsics - C Language Interface*\
 *Xlib - C Language X Interface*
