NAME
TSystemError - system error and Ctrl-Break handling
SYNOPSIS
use TUI::Drivers::SystemError;
# Driver/application lifecycle usually handles this automatically,
# but manual bracketing is available when needed:
TSystemError->suspend();
# ... critical section ...
TSystemError->resume();
if ($TUI::Drivers::SystemError::ctrlBreakHit) {
# React to Ctrl-Break state as needed.
}
DESCRIPTION
TUI::Drivers::SystemError provides system-level error handling facilities used by the TVision driver layer.
The module exposes global state related to Ctrl-Break handling and provides class methods to suspend and resume system-level interrupt processing. This functionality is used to coordinate application behavior during critical sections and shutdown.
In typical applications, TSystemError is coordinated by the application lifecycle (for example via TApplication->suspend() and TApplication->resume()), rather than being called directly in business logic.
Commonly Used Features
The most common interaction is checking $ctrlBreakHit, which is set by the platform backend when a Ctrl-Break condition is observed.
suspend() and resume() are primarily lifecycle hooks around driver subsystems. In strict debugging mode, backend Ctrl-Break handler changes are intentionally skipped.
VARIABLES
$ctrlBreakHit
Indicates whether a Ctrl-Break event has occurred (Bool).
This variable is set to a true value whenever the user triggers a Ctrl-Break interrupt. The flag may be cleared by assigning it a false value.
$saveCtrlBreak
Compatibility variable (Bool) from the original Turbo Vision DOS implementation.
Historically it stored the previous DOS Ctrl-Break flag so that the system state could be restored when Turbo Vision released control of the terminal. The Perl port does not use this mechanism and the variable is retained only for compatibility.
METHODS
suspend
TSystemError->suspend();
Suspends system-level Ctrl-Break handling.
This method disables Ctrl-Break processing while the application performs critical operations. The previous system state is preserved internally.
resume
TSystemError->resume();
Restores system-level Ctrl-Break handling.
This method re-enables Ctrl-Break processing and restores the system state that was active before suspend was called.
SEE ALSO
AUTHORS
Borland International (original Turbo Vision design)
J. Schneider <brickpool@cpan.org> (Perl implementation and maintenance)
COPYRIGHT AND LICENSE
Copyright (c) 1990-1994, 1997 by Borland International
Copyright (c) 2021-2026 the "AUTHORS" as listed above.
This software is licensed under the MIT license (see the LICENSE file, which is part of the distribution).