mirror of
https://github.com/facebook/sapling.git
synced 2024-12-29 08:02:24 +03:00
b7f2ee577a
Summary: The Rust upstream took the "set F_CLOEXEC on every opened file" approach and provided no support for closing fds at spawn time to make spawn lightweight [1]. However, that does not play well in our case: - On Windows: - stdin/stdout/stderr are not created by Rust, and inheritable by default (other process like `cargo`, or `dotslash` might leak them too). - a few other handles like "Null", "Afd" are inheritable. It's unclear how they get created, though. - Fortunately, files opened by Python or C in edenscm (ex. packfiles) seem to be not inheritable and do not require special handling. - On Linux: - Files opened by Python or C are likely lack of F_CLOEXEC and need special handling. Implement logic to close file handlers (or set F_CLOEXEC) explicitly. [1]: https://github.com/rust-lang/rust/issues/12148 Reviewed By: DurhamG Differential Revision: D23124167 fbshipit-source-id: 32f3a1b9e3ae3a9475609df282151c9d6c4badd4 |
||
---|---|---|
.. | ||
examples | ||
src | ||
Cargo.toml |