Sha256: fa35d5b6adb83a8442ec06b08f3d30631ac7b8513f3cf8b3986d27b7ee58cf93

Contents?: true

Size: 783 Bytes

Versions: 22

Compression:

Stored size: 783 Bytes

Contents

use crate::windows_sys::{CreatePipe, INVALID_HANDLE_VALUE};
use std::{fs::File, io, os::windows::prelude::*, ptr};

/// NOTE: These pipes do not support IOCP.
///
/// If IOCP is needed, then you might want to emulate
/// anonymous pipes with CreateNamedPipe, as Rust's stdlib does.
pub(super) fn pipe() -> io::Result<(File, File)> {
    let mut read_pipe = INVALID_HANDLE_VALUE;
    let mut write_pipe = INVALID_HANDLE_VALUE;

    let ret = unsafe { CreatePipe(&mut read_pipe, &mut write_pipe, ptr::null_mut(), 0) };

    if ret == 0 {
        Err(io::Error::last_os_error())
    } else {
        unsafe {
            Ok((
                File::from_raw_handle(read_pipe as RawHandle),
                File::from_raw_handle(write_pipe as RawHandle),
            ))
        }
    }
}

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
wasmtime-23.0.2 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-22.0.0 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-21.0.1 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-20.0.2 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-20.0.0 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-18.0.3 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-17.0.1 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-17.0.0 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-16.0.0 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-15.0.1 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-15.0.0 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-14.0.4 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-14.0.3 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-14.0.1 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-14.0.0 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-13.0.0 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-12.0.1 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-12.0.0 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-11.0.0 ./ext/cargo-vendor/cc-1.0.83/src/os_pipe/windows.rs
wasmtime-10.0.1 ./ext/cargo-vendor/cc-1.0.82/src/os_pipe/windows.rs