diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-06-10 11:10:14 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-06-10 13:40:53 +0000 |
| commit | 048c640a64fd064361382a8800de05c87ff630cb (patch) | |
| tree | 2c896c8ed72d1f589472ee034accc21a3183da42 /executor/common.h | |
| parent | 348a48c80275445af03c893a955f29c3db0eb62d (diff) | |
executor: optimize waiting for child processes exit
Currently we sleep only for 1 ms, which may produce some excessive CPU load
(we usually have 6/8 such processes waiting).
Make it sleep for 10 ms, but also make the sleep return immediately on child exit.
This shuold both improve latency and reduce CPU load.
Diffstat (limited to 'executor/common.h')
| -rw-r--r-- | executor/common.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/executor/common.h b/executor/common.h index fdbf4bcb1..3a735a086 100644 --- a/executor/common.h +++ b/executor/common.h @@ -678,9 +678,9 @@ static void loop(void) uint32 executed_calls = __atomic_load_n(output_data, __ATOMIC_RELAXED); #endif for (;;) { + sleep_ms(10); if (waitpid(-1, &status, WNOHANG | WAIT_FLAGS) == pid) break; - sleep_ms(1); #if SYZ_EXECUTOR // Even though the test process executes exit at the end // and execution time of each syscall is bounded by syscall_timeout_ms (~50ms), |
