webmcp

annotate framework/env/execute/_initializers.lua @ 382:810c020b0da4

Reverted changes to mondelefant_result_index and mondelefant_result_newindex C-functions (proxying of JSON document)
author jbe
date Mon Nov 16 18:31:49 2015 +0100 (2015-11-16)
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

Impressum / About Us