scope ping_v3. static new ThreadLocal #forThread = new ThreadLocal() { public PingSource initialValue() { ret ping_v3_pingSourceMaker()!; } }; // always returns true for convenience svoid ping_v3() { source = forThread! callF(source?.action); true; }