code wiki / _hdl_build / nx_arbiter_gate.nx

nx_arbiter_gate.nx

buildroot/runtime/_hdl_build/nx_arbiter_gate.nx

6339 B94 linesdepth 3pulls 6 transitivereach 0 importersview sourcekind gate/prooftopic arbiter
docsdependenciesstructsconstsfunctions

about

nx_arbiter_gate.nx -- proves the arbitration primitive (nx_arbiter): a kernel-enforced exclusive lock serializes concurrent writers on a shared resource. Asserts: acquire succeeds; while held, a second independent try is DENIED (mutual exclusion); after release the lock is free again; the lock file lives under the stable shared LOCKDIR (not /tmp). Uses a PER-WORKSTREAM test resource (via NISHI_WSID) so concurrent sibling gate runs in the 21-workstream fleet don't contend on the same test lock. GREEN iff all 5 pass. license_tier: ORIGINAL

dependencies 5 imports · 0 importers

nx_syscalls.nx nx_arbiter.nx nx_runpath.nx nx_gate_verdict.nx nx_lease.nx nx_arbiter_gate.nx

imports: nx_syscalls.nxnx_arbiter.nxnx_runpath.nxnx_gate_verdict.nxnx_lease.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_mmap g_w sys_write rp_wsid sys_openat_rd sys_mmap ↻ sys_read sys_close rp_match ls_pid fl_acquire fl_try fl_mkdir sys_mmap ↻ fl_path sys_openat_wr sys_flock sys_close ↻ fl_nap sys_mmap ↻ g_row g_w ↻ fl_try ↻ fl_release sys_flock ↻ sys_close ↻ fl_path ↻ g_starts gv_ctr sys_mmap ↻ gv_verdict gv_puts sys_write ↻ gv_num sys_mmap ↻ sys_write ↻ sys_munmap gv_journal sys_openat_append

structs

none

consts

none

functions

12func g_w(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 2: g_rowmain calls 1: sys_write
13func g_starts(a: *u8, b: *u8) -> i64 { var i: i64=0; while b[i]!=(0 as u8){ if a[i]!=b[i]{return 0} i=i+1 } return 1 }
called by 1: main
14func g_row(id: *u8, ok: i64, pass: *i64) -> i64 { g_w(" "); g_w(id); g_w(": "); if ok==1 { g_w("OK\n"); pass[0]=pass[0]+1 } else { g_w("FAIL\n") } return 0 }
called by 1: main calls 1: g_w
16func main() -> i64