@include @define test1() { @local ctl, mux, ns, as, dom, ids; ids = []; mux = mkctlmux_local(); ctl = mux.launch(["./attach"], 0); as = ctl.mem(); ns = ctl.ns(); dom = mkdom(ns, as); dom.trace(ctlmux`Efork, @lambda(ctl, spwn){ append(ids, spwn.id); spwn.detach(); }); dom.xtrap(&dom`dowait, @lambda(ctl){ foreach(@lambda(id){ @local ctl, dom; ctl = mux.attach(id); printf("attached to %d\n", id); dom = mkdom(ctl.ns(), ctl.mem()); dom`f = 0; dom.detach(); printf("cleared %d\n", id); }, ids); return nil; }); dom.xcont(); mux.run(); } test1();