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_AST(ast); The behavior of RETURN_AST(ast) is equivalent to
CALL_AST(ast);
RETURN; RETURN_AST is faster than the above sequence, because in most cases AST doesn't have to be queued and then extracted from the queue.
There is slight difference between CALL_AST; RETURN and RETURN_AST: CALL_AST and RETURN queue the AST after all ASTs on a given SPL, but RETURN_AST executes the AST directly, jumping the queue. Because order of executing ASTs is not defined, code must be written in such a way that this difference doesn't change behavior.