manpagez: man pages & more
info guile
Home | html | info | man
[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.25.4.5 Trap States

When multiple traps are present in a system, we begin to have a bookkeeping problem. How are they named? How does one disable, enable, or delete them?

Guile’s answer to this is to keep an implicit per-thread trap state. The trap state object is not exposed to the user; rather, API that works on trap states fetches the current trap state from the dynamic environment.

Traps are identified by integers. A trap can be enabled, disabled, or removed, and can have an associated user-visible name.

These procedures have their own module:

(use-modules (system vm trap-state))
Scheme Procedure: add-trap! trap name

Add a trap to the current trap state, associating the given name with it. Returns a fresh trap identifier (an integer).

Note that usually the more specific functions detailed in High-Level Traps are used in preference to this one.

Scheme Procedure: list-traps

List the current set of traps, both enabled and disabled. Returns a list of integers.

Scheme Procedure: trap-name idx

Returns the name associated with trap idx, or #f if there is no such trap.

Scheme Procedure: trap-enabled? idx

Returns #t if trap idx is present and enabled, or #f otherwise.

Scheme Procedure: enable-trap! idx

Enables trap idx.

Scheme Procedure: disable-trap! idx

Disables trap idx.

Scheme Procedure: delete-trap! idx

Removes trap idx, disabling it first, if necessary.


[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

This document was generated on April 20, 2013 using texi2html 5.0.

© manpagez.com 2000-2019
Individual documents may contain additional copyright information.