webmcp

changeset 287:a9ad9186a922

Adjusted env/trace/__init.lua to deal with forking
author jbe
date Sun Mar 22 04:08:53 2015 +0100 (2015-03-22)
parents fc2aba7d5db9
children c51f283dfb0d
files framework/env/trace/__init.lua
line diff
     1.1 --- a/framework/env/trace/__init.lua	Sun Mar 22 02:10:57 2015 +0100
     1.2 +++ b/framework/env/trace/__init.lua	Sun Mar 22 04:08:53 2015 +0100
     1.3 @@ -1,3 +1,28 @@
     1.4 -trace._disabled = false
     1.5 -trace._tree = { type = "root", start_hires_time = extos.monotonic_hires_time() }
     1.6 -trace._stack = { trace._tree }
     1.7 +local seq = 0
     1.8 +local saved_tree
     1.9 +
    1.10 +request.for_each(function()
    1.11 +  if seq == 0 then
    1.12 +    -- prepare for configuration/initialization phase
    1.13 +    trace._disabled = false
    1.14 +    trace._tree = { type = "root", start_hires_time = extos.monotonic_hires_time() }
    1.15 +    trace._stack = { trace._tree }
    1.16 +    seq = 1
    1.17 +  elseif seq == 1 then
    1.18 +    -- save current state before processing first request
    1.19 +    if not (trace._stack[1] == trace._tree and trace._stack[2] == nil) then
    1.20 +      error("Trace stack unbalanced after initialization")
    1.21 +    end
    1.22 +    if not trace._disabled then
    1.23 +      saved_tree = table.new(trace._tree)
    1.24 +    end
    1.25 +    seq = 2
    1.26 +  elseif saved_tree then
    1.27 +    -- restore state before processing next request
    1.28 +    if saved_tree then
    1.29 +      trace._disabled = false
    1.30 +      trace._tree = table.new(saved_tree)
    1.31 +      trace._stack = { trace._tree }
    1.32 +    end
    1.33 +  end
    1.34 +end)

Impressum / About Us