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

THardwareInfo, TEvent

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).