Interface RETURN_IORQ_CANCELABLE

Preprocessor macro expanding to a command

SpaceUser/kernel
ContextAsync
May blockNo
SPLHigher or equal than SPL of AST or IORQ
Dynamic memoryNo

#include <SPAD/AC.H>

RETURN_IORQ_CANCELABLE(iorq, handler, chained_iorq);

Description

The behavior of RETURN_IORQ_CANCELABLE(iorq, handler, chained_iorq) is equivalent to
CALL_IORQ_CANCELABLE(iorq, handler, chained_iorq);
RETURN;
RETURN_IORQ_CANCELABLE is faster than the above sequence, because in most cases IORQ doesn't have to be queued and then extracted from the queue.

Arguments

Implementation note

There is slight difference between CALL_IORQ_CANCELABLE; RETURN and RETURN_IORQ_CANCELABLE: CALL_IORQ_CANCELABLE and RETURN queue the IORQ after all ASTs and IORQs on a given SPL, but RETURN_IORQ_CANCELABLE executes the IORQ directly, jumping the queue. Because order of executing ASTs and IORQs is not defined, code must be written in such a way that this difference doesn't change behavior.

See also

CALL_IORQ_CANCELABLE, RETURN