webmcp
annotate framework/env/execute/inner.lua @ 534:efc700d98c17
Removed attr support for value container but kept bugfix from changeset a2ff42a662125a5c6b958f1c6a210382fe712308
| author | jbe |
|---|---|
| date | Mon Apr 01 23:35:29 2019 +0200 (2019-04-01) |
| parents | 3384306aa7bc |
| children |
| rev | line source |
|---|---|
| jbe/bsw@0 | 1 --[[-- |
| jbe/bsw@0 | 2 execute.inner() |
| jbe/bsw@0 | 3 |
| jbe@325 | 4 It is mandatory to call this function once in each pre-fork and post-fork initializer and once in each filter of a WebMCP application. |
| jbe@321 | 5 |
| jbe@321 | 6 Calling execute.inner() in an initializer marks the end of initialization (the remaining code is executed when the process is terminated cleanly). |
| jbe@321 | 7 |
| jbe@321 | 8 Calling execute.inner() in a filter calls the next filter in the filter chain, or the view or action, if there are no more filters following. Code executed BEFORE calling this function is executed BEFORE the view or action, while code executed AFTER calling this function is executed AFTER the view of action. |
| jbe/bsw@0 | 9 |
| jbe/bsw@0 | 10 --]]-- |
| jbe/bsw@0 | 11 |
| jbe/bsw@0 | 12 function execute.inner() |
| jbe/bsw@0 | 13 local stack = execute._wrap_stack |
| jbe/bsw@0 | 14 local pos = #stack |
| jbe/bsw@0 | 15 if pos == 0 then |
| jbe/bsw@0 | 16 error("Unexpected call of execute.inner().") |
| jbe/bsw@0 | 17 end |
| jbe/bsw@0 | 18 local inner_func = stack[pos] |
| jbe/bsw@0 | 19 if not inner_func then |
| jbe/bsw@0 | 20 error("Repeated call of execute.inner().") |
| jbe/bsw@0 | 21 end |
| jbe/bsw@0 | 22 stack[pos] = false |
| jbe/bsw@0 | 23 inner_func() |
| jbe/bsw@0 | 24 end |