summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authorHomu <homu@barosl.com>2016-09-18 04:14:05 +0900
committerHomu <homu@barosl.com>2016-09-18 04:14:05 +0900
commit6ea8f7f91c65aa4d20a95dc79995904c374d7a88 (patch)
treede410b797fe4ce2f92fefabe46dc29f72d4cc4a3 /CHANGELOG.md
parent3c8ff4ab916132011c64c523cab78cbdf9a2a13e (diff)
parent1d262d0541c729df94351b73eef0957785d28d85 (diff)
downloadnix-6ea8f7f91c65aa4d20a95dc79995904c374d7a88.zip
Auto merge of #427 - oconnor663:pipe2, r=fiveop
call pipe2 directly on Linux A first shot at fixing https://github.com/nix-rust/nix/issues/414. This approach keeps the old implementation for platforms other than `notbsd`, because `libc` only exposes `pipe2` in the `notbsd` module. I've tested this by hand on my Linux machine in a couple ways: - Create a toy program that opens a pipe and passes it to `cat`, which hags if `O_CLOEXEC` doesn't get set properly. Confirm that it doesn't hang, but that it does if I pass `0` as the flags to `libc::pipe2`. - Delete the new implementation entirely, and delete the `cfg` guards on the old implementation, and confirm that above is still true. I haven't actually tested a cross compilation build though. Is there a standard way to do that?
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md5
1 files changed, 5 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4238ed74..3f8f54de 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased]
+### Changed
+- `pipe2` now calls `libc::pipe2` where available. Previously it was emulated
+ using `pipe`, which meant that setting `O_CLOEXEC` was not atomic.
+ ([#427](https://github.com/nix-rust/nix/pull/427))
+
## [0.7.0] 2016-09-09
### Added