Open
Conversation
Before, it would max out a cpu core at 100% while waiting (undesirable if what it's waiting on needs the full cpu). Adding a 1ms sleep reduced its usage to about 1% in my case.
Owner
|
Yeah, I was afraid of that. Can you try c416218 ? I think that it might actually be the correct solution to this (it will just block the parent completely until the child exits), and would be an improvement over just adding a timeout. |
Author
|
Changing WNOHANG to 0 was the first thing I tried, but it was returning prematurely (which seems to contradict the waitpid documentation), so I went with the sleep instead. |
|
I was going to ask for the same thing -- getting rid of the busy-wait. The blocking waitpid() must still be looped, because a received signal will unblock the wait (even if handled). The fix is to check the return status and block again, something like: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Before, it would max out a cpu core at 100% while waiting (undesirable if what it's waiting on needs the full cpu). Adding a 1ms sleep reduced its usage to about 1-2% in my case.