fn set_write_timeout()

in src/vtok_rpc/src/proto.rs [162:186]


    fn set_write_timeout(&self, timeout: Option<Duration>) -> IoResult<()> {
        let tv = match timeout {
            Some(dur) => libc::timeval {
                tv_sec: dur.as_secs() as i64,
                tv_usec: dur.subsec_micros() as i64,
            },
            None => libc::timeval {
                tv_sec: 0,
                tv_usec: 0,
            },
        };
        let rc = unsafe {
            libc::setsockopt(
                self.as_raw_fd(),
                libc::SOL_SOCKET,
                libc::SO_SNDTIMEO,
                &tv as *const _ as *const libc::c_void,
                std::mem::size_of::<libc::timeval>() as u32,
            )
        };
        if rc != 0 {
            return Err(IoError::last_os_error());
        }
        Ok(())
    }