Skip to main content
Version: devel

dlt.common.runtime.signals

signal_receiver

def signal_receiver(sig: int, frame: FrameType) -> None

View source on GitHub

Handle POSIX signals with two-stage escalation.

This handler is installed by delayed_signals(). On the first occurrence of a supported signal (eg. SIGINT, SIGTERM) it requests a graceful shutdown by setting a process-wide flag and waking sleeping threads via exit_event. A second occurrence of the same signal escalates by delegating to the original handler or the system default, which typically results in an immediate process termination (eg. KeyboardInterrupt for SIGINT).

Arguments:

  • sig - Signal number (for example, signal.SIGINT or signal.SIGTERM).
  • frame - The current stack frame when the signal was received.

Notes:

  • The CPython runtime delivers signal handlers in the main thread only. Worker threads must cooperatively observe shutdown via raise_if_signalled() or the signal-aware sleep().

signal_received

def signal_received() -> bool

View source on GitHub

check if a signal was received

sleep

def sleep(sleep_seconds: float) -> None

View source on GitHub

A signal-aware version of sleep function. Will wake up if signal is received but will not raise exception.

wake_all

def wake_all() -> None

View source on GitHub

Wakes all threads sleeping on event

delayed_signals

@contextmanager
def delayed_signals() -> Iterator[None]

View source on GitHub

Will delay signalling until raise_if_signalled is explicitly used or when a second signal with the same int value arrives.

A no-op when not called on main thread.

Can be nested - nested calls are no-ops.

This demo works on codespaces. Codespaces is a development environment available for free to anyone with a Github account. You'll be asked to fork the demo repository and from there the README guides you with further steps.
The demo uses the Continue VSCode extension.

Off to codespaces!

DHelp

Ask a question

Welcome to "Codex Central", your next-gen help center, driven by OpenAI's GPT-4 model. It's more than just a forum or a FAQ hub – it's a dynamic knowledge base where coders can find AI-assisted solutions to their pressing problems. With GPT-4's powerful comprehension and predictive abilities, Codex Central provides instantaneous issue resolution, insightful debugging, and personalized guidance. Get your code running smoothly with the unparalleled support at Codex Central - coding help reimagined with AI prowess.