• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
    • RDF quality heuristics
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
    • SWISH Prolog shell
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

4.37 User Top-level Manipulation
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Built-in Predicates
        • User Top-level Manipulation
          • break/0
          • abort/0
          • halt/0
          • halt/1
          • prolog/0
          • expand_query/4
          • expand_answer/2
    • Packages
Availability:built-in
[ISO]halt(+Status)
Terminate Prolog execution with Status. This predicate calls PL_halt() which preforms the following steps:

  1. Set the Prolog flag exit_status to Status.

  2. Call all hooks registered using at_halt/1. If Status equals 0 (zero), any of these hooks calls cancel_halt/1, termination is cancelled.

  3. Call all hooks registered using PL_at_halt(). In the future, if any of these hooks returns non-zero, termination will be cancelled. Currently, this only prints a warning.

  4. Perform the following system cleanup actions:

    • Cancel all threads, calling thread_at_exit/1 registered termination hooks. Threads not responding within 1 second are cancelled forcefully.
    • Flush I/O and close all streams except for standard I/O.
    • Reset the terminal if its properties were changed.
    • Remove temporary files and incomplete compilation output.
    • Reclaim memory.

  5. Call exit(Status) to terminate the process

halt/1 has been extended in SWI-Prolog to accept the arg abort. This performs as halt/1 above except that:

  • Termination cannot be cancelled with cancel_halt/1.
  • abort() is called instead of exit(Status).
ClioPatria (version V3.1.1-40-g9d9e003)