1-- using mcp.internal() with extstore
2
3function new_splitter(afg, bfg)
4    local fg = mcp.funcgen_new()
5    local h_a = fg:new_handle(afg)
6    local h_b = fg:new_handle(bfg)
7
8    fg:ready({ f = function(rctx)
9        return function(r)
10            rctx:enqueue(r, h_a)
11            rctx:enqueue(r, h_b)
12            rctx:wait_cond(2, mcp.WAIT_ANY)
13            return rctx:res_any(h_a)
14        end
15    end
16    })
17
18    return fg
19end
20
21function mcp_config_pools()
22end
23
24function mcp_config_routes()
25    local mfg = mcp.funcgen_new()
26    mfg:ready({ f = function(rctx)
27            return function(r)
28                return mcp.internal(r)
29            end
30        end
31    })
32
33    -- test running internal from subrctx's
34    local split = new_splitter(mfg, mfg)
35
36    local map = {
37        ["top"] = mfg,
38        ["split"] = split,
39    }
40
41    local router = mcp.router_new({ map = map })
42
43    mcp.attach(mcp.CMD_ANY_STORAGE, router)
44end
45