LCOV - code coverage report
Current view: top level - libs/utils/src - nonblock.rs (source / functions) Coverage Total Hit
Test: 32f4a56327bc9da697706839ed4836b2a00a408f.info Lines: 100.0 % 8 8
Test Date: 2024-02-07 07:37:29 Functions: 100.0 % 1 1

            Line data    Source code
       1              : use nix::fcntl::{fcntl, OFlag, F_GETFL, F_SETFL};
       2              : use std::os::unix::io::RawFd;
       3              : 
       4              : /// Put a file descriptor into non-blocking mode
       5         1208 : pub fn set_nonblock(fd: RawFd) -> Result<(), std::io::Error> {
       6         1208 :     let bits = fcntl(fd, F_GETFL)?;
       7              : 
       8              :     // If F_GETFL returns some unknown bits, they should be valid
       9              :     // for passing back to F_SETFL, too. If we left them out, the F_SETFL
      10              :     // would effectively clear them, which is not what we want.
      11         1208 :     let mut flags = OFlag::from_bits_retain(bits);
      12         1208 :     flags |= OFlag::O_NONBLOCK;
      13         1208 : 
      14         1208 :     fcntl(fd, F_SETFL(flags))?;
      15              : 
      16         1208 :     Ok(())
      17         1208 : }
        

Generated by: LCOV version 2.1-beta