Format
This commit is contained in:
parent
a6f70cd09c
commit
7fdba5b51c
@ -110,39 +110,54 @@ pub fn spawn(
|
||||
let stdin = match self.stdin.take() {
|
||||
Some(Stdio::Null) => None,
|
||||
None | Some(Stdio::Inherit) => {
|
||||
STDIN.get().unwrap().as_ref().map(|file| {
|
||||
let file = file.duplicate()?;
|
||||
let res = Ok::<_, io::Error>((file.fs_pid, file.fd));
|
||||
crate::mem::drop(file); // do not close the temporary file struct
|
||||
res
|
||||
}).transpose()?
|
||||
},
|
||||
STDIN
|
||||
.get()
|
||||
.unwrap()
|
||||
.as_ref()
|
||||
.map(|file| {
|
||||
let file = file.duplicate()?;
|
||||
let res = Ok::<_, io::Error>((file.fs_pid, file.fd));
|
||||
crate::mem::drop(file); // do not close the temporary file struct
|
||||
res
|
||||
})
|
||||
.transpose()?
|
||||
}
|
||||
Some(Stdio::MakePipe) => todo!(),
|
||||
Some(Stdio::InheritFile(file)) => Some((file.fs_pid, file.fd)),
|
||||
};
|
||||
let stdout = match self.stdout.take() {
|
||||
Some(Stdio::Null) => None,
|
||||
None | Some(Stdio::Inherit) => {
|
||||
STDOUT.get().unwrap().as_ref().map(|file| {
|
||||
let file = file.duplicate()?;
|
||||
let res = Ok::<_, io::Error>((file.fs_pid, file.fd));
|
||||
crate::mem::drop(file); // do not close the temporary file struct
|
||||
res
|
||||
}).transpose()?
|
||||
},
|
||||
STDOUT
|
||||
.get()
|
||||
.unwrap()
|
||||
.as_ref()
|
||||
.map(|file| {
|
||||
let file = file.duplicate()?;
|
||||
let res = Ok::<_, io::Error>((file.fs_pid, file.fd));
|
||||
crate::mem::drop(file); // do not close the temporary file struct
|
||||
res
|
||||
})
|
||||
.transpose()?
|
||||
}
|
||||
Some(Stdio::MakePipe) => todo!(),
|
||||
Some(Stdio::InheritFile(file)) => Some((file.fs_pid, file.fd)),
|
||||
};
|
||||
let stderr = match self.stderr.take() {
|
||||
Some(Stdio::Null) => None,
|
||||
None | Some(Stdio::Inherit) => {
|
||||
STDERR.get().unwrap().as_ref().map(|file| {
|
||||
let file = file.duplicate()?;
|
||||
let res = Ok::<_, io::Error>((file.fs_pid, file.fd));
|
||||
crate::mem::drop(file); // do not close the temporary file struct
|
||||
res
|
||||
}).transpose()?
|
||||
},
|
||||
STDERR
|
||||
.get()
|
||||
.unwrap()
|
||||
.as_ref()
|
||||
.map(|file| {
|
||||
let file = file.duplicate()?;
|
||||
let res = Ok::<_, io::Error>((file.fs_pid, file.fd));
|
||||
crate::mem::drop(file); // do not close the temporary file struct
|
||||
res
|
||||
})
|
||||
.transpose()?
|
||||
}
|
||||
Some(Stdio::MakePipe) => todo!(),
|
||||
Some(Stdio::InheritFile(file)) => Some((file.fs_pid, file.fd)),
|
||||
};
|
||||
|
@ -97,7 +97,7 @@ pub fn init() {
|
||||
};
|
||||
let stdio: [Option<(u64, u64)>; 3] =
|
||||
postcard::from_bytes(&rpc::send_call(proc_man_pid, 8, 1, &[]).get_return()).unwrap();
|
||||
STDIN.get_or_init(|| stdio[0].map(|(fs_pid, fd)| File{fs_pid, fd}));
|
||||
STDOUT.get_or_init(|| stdio[1].map(|(fs_pid, fd)| File{fs_pid, fd}));
|
||||
STDERR.get_or_init(|| stdio[2].map(|(fs_pid, fd)| File{fs_pid, fd}));
|
||||
STDIN.get_or_init(|| stdio[0].map(|(fs_pid, fd)| File { fs_pid, fd }));
|
||||
STDOUT.get_or_init(|| stdio[1].map(|(fs_pid, fd)| File { fs_pid, fd }));
|
||||
STDERR.get_or_init(|| stdio[2].map(|(fs_pid, fd)| File { fs_pid, fd }));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user