Skip to content

Commit

Permalink
Split FL and FD fcntls
Browse files Browse the repository at this point in the history
  • Loading branch information
jackpot51 committed Jul 29, 2017
1 parent c83f975 commit a30092f
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src/libstd/sys/redox/fd.rs
Expand Up @@ -57,9 +57,9 @@ impl FileDesc {
}

pub fn set_cloexec(&self) -> io::Result<()> {
let mut flags = cvt(syscall::fcntl(self.fd, syscall::F_GETFL, 0))?;
let mut flags = cvt(syscall::fcntl(self.fd, syscall::F_GETFD, 0))?;
flags |= syscall::O_CLOEXEC;
cvt(syscall::fcntl(self.fd, syscall::F_SETFL, flags)).and(Ok(()))
cvt(syscall::fcntl(self.fd, syscall::F_SETFD, flags)).and(Ok(()))
}

pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> {
Expand Down
12 changes: 6 additions & 6 deletions src/libstd/sys/redox/process.rs
Expand Up @@ -272,21 +272,21 @@ impl Command {

if let Some(fd) = stdio.stderr.fd() {
t!(cvt(syscall::dup2(fd, 2, &[])));
let mut flags = t!(cvt(syscall::fcntl(2, syscall::F_GETFL, 0)));
let mut flags = t!(cvt(syscall::fcntl(2, syscall::F_GETFD, 0)));
flags &= ! syscall::O_CLOEXEC;
t!(cvt(syscall::fcntl(2, syscall::F_SETFL, flags)));
t!(cvt(syscall::fcntl(2, syscall::F_SETFD, flags)));
}
if let Some(fd) = stdio.stdout.fd() {
t!(cvt(syscall::dup2(fd, 1, &[])));
let mut flags = t!(cvt(syscall::fcntl(1, syscall::F_GETFL, 0)));
let mut flags = t!(cvt(syscall::fcntl(1, syscall::F_GETFD, 0)));
flags &= ! syscall::O_CLOEXEC;
t!(cvt(syscall::fcntl(1, syscall::F_SETFL, flags)));
t!(cvt(syscall::fcntl(1, syscall::F_SETFD, flags)));
}
if let Some(fd) = stdio.stdin.fd() {
t!(cvt(syscall::dup2(fd, 0, &[])));
let mut flags = t!(cvt(syscall::fcntl(0, syscall::F_GETFL, 0)));
let mut flags = t!(cvt(syscall::fcntl(0, syscall::F_GETFD, 0)));
flags &= ! syscall::O_CLOEXEC;
t!(cvt(syscall::fcntl(0, syscall::F_SETFL, flags)));
t!(cvt(syscall::fcntl(0, syscall::F_SETFD, flags)));
}

if let Some(g) = self.gid {
Expand Down
6 changes: 4 additions & 2 deletions src/libstd/sys/redox/syscall/flag.rs
Expand Up @@ -20,8 +20,10 @@ pub const EVENT_NONE: usize = 0;
pub const EVENT_READ: usize = 1;
pub const EVENT_WRITE: usize = 2;

pub const F_GETFL: usize = 1;
pub const F_SETFL: usize = 2;
pub const F_GETFD: usize = 1;
pub const F_SETFD: usize = 2;
pub const F_GETFL: usize = 3;
pub const F_SETFL: usize = 4;

pub const FUTEX_WAIT: usize = 0;
pub const FUTEX_WAKE: usize = 1;
Expand Down

0 comments on commit a30092f

Please sign in to comment.