nx_tend_t3_probe.nx source
↩ module page · 38 lines · 1775 B
1// nx_tend_t3_probe.nx -- stage-by-stage instrumentation of the tender-gate T3 fixture (live ancient
2// waiter should be seen by tend_health; gate observes waiters=0). Prints every intermediate value.
3// license_tier: ORIGINAL expect_exit: 0
4import "nx_swarm_tend.nx"
5
6func main(argc: i64, argv: *i64) -> i64 {
7 let me: i64 = sq_getpid()
8 std_puts("me=" as *u8); std_pdec(me)
9 sov_put(SQ_STORE, "q:ids" as *u8, "x" as *u8, 0)
10 let row: *u8 = sys_mmap(256) as *u8
11 let ancient: i64 = sys_now_us() - 600000000
12 sq_mkrow("WAIT" as *u8, me, 5, 4000, ancient, row)
13 std_puts(" row=[" as *u8); std_puts(row); std_puts("]" as *u8)
14 sq_put_state(me, row)
15 sq_add_id(me)
16 let ids: *u8 = sys_mmap(4096) as *u8
17 let idn: i64 = sov_get_copy(SQ_STORE, "q:ids" as *u8, ids, 4095)
18 std_puts(" idn=" as *u8); std_pdec(idn)
19 if idn > 0 { ids[idn] = 0 as u8; std_puts(" ids=[" as *u8); std_puts(ids); std_puts("]" as *u8) }
20 let buf: *u8 = sys_mmap(262144) as *u8
21 let n: i64 = sq_materialize(buf, 262143)
22 std_puts(" mat_n=" as *u8); std_pdec(n)
23 if n > 0 { buf[n] = 0 as u8; std_puts(" mat=[" as *u8); std_puts(buf); std_puts("]" as *u8) }
24 let wp: *i64 = sys_mmap(SQ_MAXROW * 8) as *i64
25 let wpr: *i64 = sys_mmap(SQ_MAXROW * 8) as *i64
26 let we: *i64 = sys_mmap(SQ_MAXROW * 8) as *i64
27 let nwp: *i64 = sys_mmap(8) as *i64
28 var holders: i64 = 0
29 if n > 0 { holders = sq_scan(buf, n, wp, wpr, we, nwp) }
30 std_puts(" holders=" as *u8); std_pdec(holders)
31 std_puts(" nw=" as *u8); std_pdec(nwp[0])
32 std_puts(" alive_me=" as *u8); std_pdec(ml_pid_alive(me))
33 std_puts(" now=" as *u8); std_pdec(sys_now_us())
34 std_puts(" anc=" as *u8); std_pdec(ancient)
35 std_puts("\n" as *u8)
36 sys_exit(0)
37 return 0
38}