Go to the first, previous, next, last section, table of contents.


invokeRestart

Function: invokeRetart { id -> }
file: 01-C-event.t
package: muf
status: alpha

This function accepts a symbol naming a restart, or else a restart identifier, which must have been obtained from getNthRestart, either directly or indirectly (as via findRestart) and invokes it. In the current implementation, the restart function must neither accept nor return arguments.

The invokeRestart function returns only if the restart function itself returns -- many will do a goto to some suitable tag.

This function is currently implemented as

: invokeRestart { $ -> ! } -> restart

    restart symbol? if
        restart nil findRestart -> restart
    fi

    restart getRestart
    -> name
    -> fn
    -> tFn
    -> iFn
    -> rFn
    -> data
    -> id

    fn call{ -> }
;
'invokeRestart export

A matching function ]invokeRestart is provided for restarts which take as argument a single block.

This function is currently implemented as

: ]invokeRestart { [] $ -> ! } -> restart

    restart symbol? if
        restart nil findRestart -> restart
    fi

    restart getRestart
    -> name
    -> fn
    -> tFn
    -> iFn
    -> rFn
    -> data
    -> id

    fn call{ [] -> }
;
']invokeRestart export

If you use restarts with other arities, you may wish to write yourself an appropriate variant of the above functions.


Go to the first, previous, next, last section, table of contents.