[ Event Handling | Reference Manual | Alphabetic Index ]

# get_interrupt_handler(+IntId, -PredSpec, -Module)

Succeeds if PredSpec unifies with the specification of the current handler for interrupt IntId and Module unifies with its home module.

IntId
  Integer or atom.
PredSpec
  Term which unifies with atom/integer.
Module
  Atom or variable.

## Description

Provided IntId is a valid interrupt identifier, unifies PredSpec with the specification (i.e. a term of the form name/arity) of the current handler for interrupt IntId, and Module with the module in which it is defined.

The interrupts which exist are machine dependent. The interrupts which can be caught or trapped are implementation defined.

### Modes and Determinism

- get_interrupt_handler(+, -, -) is semidet

### Fail Conditions

Fails if no handler has been set for the interrupt IntId

### Exceptions

(4) instantiation fault
  IntId is not instantiated.
(5) type error
  IntId is not an atom or integer.
(5) type error
  PredSpec does not unify with atom/integer.
(6) out of range
  IntId is not a valid interrupt name or number.

## Examples

    Success:
          ?- get_interrupt_handler(18,M,N).
          M = pause/0
          N = sepia_kernel
          yes.

          ?- set_interrupt_handler(18,true/0), kill(0, 18),
          > get_interrupt_handler(18,true/0,sepia_kernel).
          yes.
    Fail:
          get_interrupt_handler(16, true/0, sepia_kernel).
    Error:
          get_interrupt_handler(N,true/0,sepia_kernel).   (Error 4).
          get_interrupt_handler(5.0,true/0,sepia_kernel). (Error 5).
          get_interrupt_handler(-1,X,sepia_kernel).       (Error 6).

## See Also

current_interrupt / 2, set_interrupt_handler / 2, kill / 2