The procedural programming language interpreter provides for function call observability. Callbacks may be set for function execution enter and completion. The functions are the ones defined in the interpreted programs (and not the ones defined by the application).
A function call observer defines three methods: one to call before the function logic starts being executed and after the function arguments have been evaluated, one to roll back whatever the first has done in case a later function call observer fails to execute and one to call after the function logic completed execution.
Any number of function call observers may be set, their execution order is preserved (and application defined). For function call completion, the execution order is reversed.
If a function call enter observer method fails the program execution terminates and the roll back methods of the observers that has executed successfully are (possibly) called. Program execution is terminated for function call completion observer method failure as well.
Applications may not assume that once the function call enter method completed successfully one of the function call roll back and function call completion methods is always called. They may assume however that none of the later is called if the former (function call enter method) failed execution.
See Function Calling.
See struct x1f4_a1screen_type.