summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a956e9a)
raw | patch | inline | side by side (parent: a956e9a)
author | Gerrie Roos <groos@xiplink.com> | |
Tue, 10 Jan 2012 07:00:42 +0000 (09:00 +0200) | ||
committer | Florian Forster <octo@collectd.org> | |
Fri, 17 Feb 2012 13:32:53 +0000 (14:32 +0100) |
Sometimes dead modules won't be started up correctly or running ones
would not generate stats anymore. Problem manifests more often under
load and on multicore hw
Change-Id: Ifb70a74c0cd55fc421b65a1f4332147916eadb70
Signed-off-by: Florian Forster <octo@collectd.org>
would not generate stats anymore. Problem manifests more often under
load and on multicore hw
Change-Id: Ifb70a74c0cd55fc421b65a1f4332147916eadb70
Signed-off-by: Florian Forster <octo@collectd.org>
src/exec.c | patch | blob | history |
diff --git a/src/exec.c b/src/exec.c
index 639b5d45b9dd310509dd0a763404de6e6ffabb7b..c48d85f5d4899bcafa00dff5356cfff3973f75a2 100644 (file)
--- a/src/exec.c
+++ b/src/exec.c
/* We use a copy of fdset, as select modifies it */
copy = fdset;
- while (select(highest_fd + 1, ©, NULL, NULL, NULL ) > 0)
+ while (1)
{
int len;
+ status = select (highest_fd + 1, ©, NULL, NULL, NULL);
+ if (status < 0)
+ {
+ if (errno == EINTR)
+ continue;
+ break;
+ }
+
if (FD_ISSET(fd, ©))
{
char *pnl;