Fix: hand off process killing to blocking thread, await all children.

This should make dropping `ChildContainer`s and their parent `Input`s safer in async contexts.

It seems like SIGINT is insufficient to make wait terminate, but SIGKILL suffices. This introduced a new problem, namely that we have to remember and wait on *every* pid we create. This should, hopefully, put the issue of zombie processes to bed for good.
This commit is contained in:
Kyle Simpson
2021-02-01 13:43:26 +00:00
parent 7d4891d32c
commit b2453091e7
4 changed files with 54 additions and 33 deletions

View File

@@ -52,10 +52,6 @@ version = "0.10"
[dependencies.futures]
version = "0.3"
[dependencies.nix]
version = "0.19"
optional = true
[dependencies.parking_lot]
optional = true
version = "0.11"
@@ -137,7 +133,6 @@ driver = [
"byteorder",
"discortp",
"flume",
"nix",
"parking_lot",
"rand",
"serenity-voice-model",