Add support for waiting using netlink #10
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds another method of waiting for a process to finish, using the netlink IPC system in the Linux kernel.
I've made this new method the default since it's less invasive than ptrace (the preexisting method). ptrace requires attaching to the process being traced, which can only be done by one tracing process at a time, so for example it'd be impossible to pwait for a process that's being debugged or debug a process that is being pwaited for, or to run two separate instances of pwait with the same target process. On the other hand, the netlink approach should not have any of these limitations. (Though I haven't tested that.)