Skip to content

Commit 08e7ede

Browse files
committed
version 1.0.0
Changes since 0.13.7: - The API is stabilized as-is, and most callers won't need to make any changes. - Fixed a bug where `Handle::try_wait` could block indefinitely if a child process had exited but a longer-lived grandchild process was keeping its IO pipes open and its IO threads running (i.e. `stdin_bytes`, `stdout_capture`, or `stderr_capture`). Commit 04c2c8c. - `Handle` now does lazy cleanup of leaked zombie children. If a child has not exited by the time its `Handle` is dropped, that child gets added to a global list. Whenever any Duct function is about to spawn a new child, it polls each child in the leaked list and cleans up any that have exited. This strategy is copied from Python's `subprocess` module. `ReaderHandle` contains a `Handle` internally and does the same cleanup. - With that new cleanup mechanism in place, `Handle::kill` and `ReaderHandle::kill` no longer wait on child processes to exit. This avoids obscure edge cases (FUSE filesystems, debugger pauses) where waiting after `SIGKILL` could still block indefinitely. - Duct no longer kills your child processes in any circumstance other than when you call `.kill()`. Previously Duct would kill child processes when dropping a `ReaderHandle`, or in rare pipe spawning error cases.
1 parent 81b247f commit 08e7ede

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "duct"
3-
version = "0.13.7"
3+
version = "1.0.0"
44
authors = ["[email protected]"]
55
description = "a library for running child processes"
66
repository = "https://github.com/oconnor663/duct.rs"

duct_sh/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "duct_sh"
3-
version = "0.13.7"
3+
version = "1.0.0"
44
authors = ["[email protected]"]
55
description = "a sub-crate for the sh function, formerly in duct"
66
repository = "https://github.com/oconnor663/duct.rs/tree/master/duct_sh"
@@ -9,4 +9,4 @@ license = "MIT"
99
edition = "2021"
1010

1111
[dependencies]
12-
duct = { path = "../", version = "0.13" }
12+
duct = { path = "../", version = "1" }

0 commit comments

Comments
 (0)