webmcp
annotate framework/env/execute/_initializers.lua @ 414:015be25c98dd
Always write to document when "document_column" is set in class
author | jbe |
---|---|
date | Sat Jan 09 05:30:45 2016 +0100 (2016-01-09) |
parents | a2c733535b8e |
children | beb1e7925a52 |
rev | line source |
---|---|
jbe@214 | 1 function execute._initializers(initializer_path_element) |
jbe@277 | 2 local yieldvalue1 = {} |
jbe@277 | 3 local yieldvalue2 = {} |
jbe@214 | 4 local coro = coroutine.wrap(function() |
jbe@214 | 5 execute.multi_wrapped( |
jbe@214 | 6 execute._create_sorted_execution_list( |
jbe@214 | 7 function(add_by_path) |
jbe@214 | 8 add_by_path(initializer_path_element) |
jbe@316 | 9 add_by_path(WEBMCP_APP_NAME, initializer_path_element) |
jbe@214 | 10 end, |
jbe@214 | 11 function(full_path, relative_path) |
jbe@214 | 12 execute.file_path{ file_path = full_path } |
jbe@214 | 13 end |
jbe@214 | 14 ), |
jbe@214 | 15 function() |
jbe@277 | 16 coroutine.yield(yieldvalue1) |
jbe@214 | 17 end |
jbe@214 | 18 ) |
jbe@277 | 19 return yieldvalue2 |
jbe@214 | 20 end) |
jbe@277 | 21 local yieldvalue = coro() |
jbe@277 | 22 if yieldvalue == yieldvalue2 then |
jbe@277 | 23 error("Initializers failed to call execute.inner()") |
jbe@277 | 24 elseif yieldvalue ~= yieldvalue1 then |
jbe@277 | 25 error("Unexpected yield in initializers") |
jbe@214 | 26 end |
jbe@277 | 27 execute._finalizers[#execute._finalizers+1] = function() |
jbe@277 | 28 assert(coro() == yieldvalue2, "Unexpected yield in finalizers") |
jbe@277 | 29 end |
jbe@214 | 30 end |