Don't leak fds, and don't unset cloexec except/until needed (#3)
This may still leak fds in some error cases. That can be solved by using `OwnedFd` when the next Rust stable releases.
This commit is contained in:
parent
b614753cff
commit
cefd13692b
4 changed files with 52 additions and 32 deletions
12
src/main.rs
12
src/main.rs
|
|
@ -55,21 +55,25 @@ async fn main() -> Result<()> {
|
|||
|
||||
let mut sockets = Vec::with_capacity(2);
|
||||
|
||||
let (env, fd) = comp::create_privileged_socket(&mut sockets, &env_vars)
|
||||
.wrap_err("failed to create panel socket")?;
|
||||
generic::run_executable(
|
||||
token.child_token(),
|
||||
info_span!(parent: None, "cosmic-panel"),
|
||||
"cosmic-panel",
|
||||
vec!["testing-panel".into()],
|
||||
comp::create_privileged_socket(&mut sockets, &env_vars)
|
||||
.wrap_err("failed to create panel socket")?,
|
||||
env,
|
||||
vec![fd],
|
||||
);
|
||||
let (env, fd) = comp::create_privileged_socket(&mut sockets, &env_vars)
|
||||
.wrap_err("failed to create dock socket")?;
|
||||
generic::run_executable(
|
||||
token.child_token(),
|
||||
info_span!(parent: None, "cosmic-panel dock"),
|
||||
"cosmic-panel",
|
||||
vec!["testing-dock".into()],
|
||||
comp::create_privileged_socket(&mut sockets, &env_vars)
|
||||
.wrap_err("failed to create dock socket")?,
|
||||
env,
|
||||
vec![fd],
|
||||
);
|
||||
socket_tx.send(sockets).unwrap();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue