webmcp

view framework/env/trace/__init.lua @ 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 0de41d8e2cf8
children 47c5f33e4a6b
line source
1 local seq = 0
2 local saved_tree
4 request.for_each(function()
5 if seq == 0 then
6 -- prepare for configuration/initialization phase
7 trace._disabled = false
8 trace._tree = { type = "root", start_hires_time = extos.monotonic_hires_time() }
9 trace._stack = { trace._tree }
10 seq = 1
11 elseif seq == 1 then
12 -- save current state before processing first request
13 if not (trace._stack[1] == trace._tree and trace._stack[2] == nil) then
14 error("Trace stack unbalanced after initialization")
15 end
16 if not trace._disabled then
17 saved_tree = table.new(trace._tree)
18 end
19 seq = 2
20 elseif saved_tree then
21 -- restore state before processing next request
22 if saved_tree then
23 trace._disabled = false
24 trace._tree = table.new(saved_tree)
25 trace._stack = { trace._tree }
26 end
27 end
28 end)

Impressum / About Us