https://invisible-island.net/xterm/xtoolkit/
XtAppAddBlockHook, XtRemoveBlockHook - register a block hook procedure
#include <X11/Intrinsic.h> XtBlockHookId XtAppAddBlockHook(XtAppContext app_context, XtBlock- HookProc proc, XtPointer client_data); void XtRemoveBlockHook(XtBlockHookId id);
app_context Specifies the application context. proc Specifies the block hook procedure. num_args Specifies the application-specific data to be passed to the block hook.
XtAppAddBlockHook registers the specified procedure and returns an identifier for it. The hook is called at any time in the future when the Intrinsics are about to block pending some input. Block hook procedures are removed automatically and the XtBlockHookId is destroyed when the application context in which they were added is destroyed. XtRemoveBlockHook removes the specified block hook procedure from the list in which it was registered.
X Toolkit Intrinsics – C Language Interface Xlib - C Language X Interface X Version 11 libXt 1.1.5.2 XtAppAddBlockHook(3)