forkguard 0.1.3

if guard.detected_fork() { ... }
Documentation
#[cfg(unix)]
#[test]
fn test_multiple_guards() {
    let mut guard1 = forkguard::new();
    let mut guard2 = forkguard::new();

    assert!(!guard1.detected_fork());
    assert!(!guard2.detected_fork());

    let pid = unsafe { libc::fork() };
    if pid == 0 {
        if !guard1.detected_fork() {
            std::process::exit(1);
        }
        if !guard2.detected_fork() {
            std::process::exit(2);
        }

        if guard1.detected_fork() {
            std::process::exit(3);
        }
        if guard2.detected_fork() {
            std::process::exit(4);
        }

        std::process::exit(0);
    } else if pid > 0 {
        let mut status = 0;
        unsafe { libc::waitpid(pid, &mut status, 0) };
        assert!(libc::WIFEXITED(status));
        assert_eq!(
            libc::WEXITSTATUS(status),
            0,
            "one of the guards failed to detect fork in child"
        );

        assert!(!guard1.detected_fork());
        assert!(!guard2.detected_fork());
    }
}