code wiki / (root) / nx_tend_t3_probe.nx

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}