use rustix::process::Pid;
#[allow(
unsafe_code,
reason = "reviewed fixed-buffer libproc query unavailable through rustix"
)]
pub(super) fn sole_group_member(group: Pid) -> bool {
let raw = group.as_raw_nonzero().get();
let mut members: [libc::pid_t; 2] = [0; 2];
let size = libc::c_int::try_from(std::mem::size_of_val(&members))
.expect("two process IDs fit the native buffer size");
let count = unsafe { libc::proc_listpgrppids(raw, members.as_mut_ptr().cast(), size) };
count == 1 && members[0] == raw
}