rteval-loads/SOURCES/0022-shim_waitpid-allow-a-f...

44 lines
1.1 KiB
Diff

From 19594f15ac2bf6ce84492ab7d17b1133aac50bde Mon Sep 17 00:00:00 2001
From: Colin Ian King <colin.king@canonical.com>
Date: Thu, 21 May 2020 11:30:43 +0100
Subject: [PATCH 22/28] shim_waitpid: allow a few retries before throttling
retry
The retry sleep kicks in too early, allow several retries before
throttling back and sleeping per iteration. Makes normnal termination
waits more responsive on the waiting parent.
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
core-shim.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/core-shim.c b/core-shim.c
index 5e659f1ebf99..17935f05cdd3 100644
--- a/core-shim.c
+++ b/core-shim.c
@@ -1184,16 +1184,18 @@ pid_t shim_waitpid(pid_t pid, int *wstatus, int options)
if ((ret >= 0) || (errno != EINTR))
break;
+ count++;
/*
* Retry if EINTR unless we've have 2 mins
* consecutive EINTRs then give up.
*/
if (!keep_stressing_flag()) {
kill(pid, SIGALRM);
- if (count++ > 120)
+ if (count > 120)
kill(pid, SIGKILL);
}
- sleep(1);
+ if (count > 10)
+ sleep(1);
}
return ret;
}
--
2.21.3