Preprocessor macro expanding to a command
| Space | User/kernel |
| Context | Async |
| May block | No |
| SPL | Higher or equal than SPL of AST or IORQ |
| Dynamic memory | No |
#include <SPAD/AC.H>
RETURN_IORQ_LSTAT(iorq, handler); The behavior of RETURN_IORQ_LSTAT(iorq, handler) is equivalent to
CALL_IORQ_LSTAT(iorq, handler);
RETURN; RETURN_IORQ_LSTAT is faster than the above sequence, because in most cases IORQ doesn't have to be queued and then extracted from the queue.
There is slight difference between CALL_IORQ_LSTAT; RETURN and RETURN_IORQ_LSTAT: CALL_IORQ_LSTAT and RETURN queue the IORQ after all ASTs and IORQs on a given SPL, but RETURN_IORQ_LSTAT 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.