webmcp

changeset 208:2c2bcde0df79

Pre/postfork initializers and finalizers via coroutines
author jbe
date Sat Jan 10 00:11:52 2015 +0100 (2015-01-10)
parents 77c4774e8342
children 2cb27106aa73
files framework/bin/mcp.lua framework/env/execute/__init.lua framework/env/execute/finalizers.lua framework/env/execute/postfork_initializers.lua framework/env/execute/prefork_initializers.lua
line diff
     1.1 --- a/framework/bin/mcp.lua	Fri Jan 09 22:53:07 2015 +0100
     1.2 +++ b/framework/bin/mcp.lua	Sat Jan 10 00:11:52 2015 +0100
     1.3 @@ -209,7 +209,7 @@
     1.4            request.handler(req)
     1.5          end
     1.6        )
     1.7 -      --listener.finish = ???  -- TODO: requires coroutines and execute.inner() for initializers?
     1.8 +      listener.finish = execute.finalizers
     1.9        moonbridge_listen(listener)
    1.10      end
    1.11    end
     2.1 --- a/framework/env/execute/__init.lua	Fri Jan 09 22:53:07 2015 +0100
     2.2 +++ b/framework/env/execute/__init.lua	Sat Jan 10 00:11:52 2015 +0100
     2.3 @@ -1,1 +1,2 @@
     2.4 -execute._wrap_stack = {}  -- used by execute.inner() and execute.wrapped(...)
     2.5 +execute._wrap_stack = {}
     2.6 +execute._finalizers = {}
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/framework/env/execute/finalizers.lua	Sat Jan 10 00:11:52 2015 +0100
     3.3 @@ -0,0 +1,13 @@
     3.4 +--[[--
     3.5 +execute.finalizers()
     3.6 +
     3.7 +Executes that code in initializers which is placed after execute.inner().
     3.8 +
     3.9 +--]]--
    3.10 +
    3.11 +function execute.finalizers()
    3.12 +  for i = #execute._finalizers, 1, -1 do
    3.13 +    execute._finalizers[i]()
    3.14 +    execute._finalizers[i] = 0
    3.15 +  end
    3.16 +end
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/framework/env/execute/postfork_initializers.lua	Sat Jan 10 00:11:52 2015 +0100
     4.3 @@ -0,0 +1,10 @@
     4.4 +--[[--
     4.5 +execute.postfork_initializers()
     4.6 +
     4.7 +Executes all initializers after forking.
     4.8 +
     4.9 +--]]--
    4.10 +
    4.11 +function execute.postfork_initializers()
    4.12 +  execute._initializers("_postfork")
    4.13 +end
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/framework/env/execute/prefork_initializers.lua	Sat Jan 10 00:11:52 2015 +0100
     5.3 @@ -0,0 +1,10 @@
     5.4 +--[[--
     5.5 +execute.prefork_initializers()
     5.6 +
     5.7 +Executes all initializers prior to forking.
     5.8 +
     5.9 +--]]--
    5.10 +
    5.11 +function execute.prefork_initializers()
    5.12 +  execute._initializers("_prefork")
    5.13 +end

Impressum / About Us