package runtime_escaped_descendant_test; import os; import time; @test fn escaped_writer_does_not_hold_runner() void = { let fds: [2]i32; assert(os.pipe(&fds) == 0); let pid: i32 = os.fork(); assert(pid >= 0); if (pid == 0) { os.close(fds[0]); if (os.setpgid(0, 0) != 0) { os.exit(120); }; let ready: u8 = 1u8; if (os.write(fds[1], &ready, 1u64) != 1i64) { os.exit(121); }; os.close(fds[1]); time.sleep((time.second: i64): time.duration, time.clock.monotonic); os.exit(0); }; os.close(fds[1]); let ready: u8 = 0u8; assert(os.read(fds[0], &ready, 1u64) == 1i64); os.close(fds[0]); assert(ready == 1u8); };