diff options
| author | Gregory Neil Shapiro <gshapiro@FreeBSD.org> | 2002-08-28 17:57:52 +0000 |
|---|---|---|
| committer | Gregory Neil Shapiro <gshapiro@FreeBSD.org> | 2002-08-28 17:57:52 +0000 |
| commit | 959366dcbe20824a331bcae977d662025850f481 (patch) | |
| tree | 917921b3db147e850cc818686dc5ee3127c9842b /contrib/sendmail/libmilter/listener.c | |
| parent | 739ac4d4d3a1d1d68eae4e7bd59c179d842864d2 (diff) | |
Diffstat (limited to 'contrib/sendmail/libmilter/listener.c')
| -rw-r--r-- | contrib/sendmail/libmilter/listener.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/contrib/sendmail/libmilter/listener.c b/contrib/sendmail/libmilter/listener.c index 03d8acd34e68a..e809a7b615aa2 100644 --- a/contrib/sendmail/libmilter/listener.c +++ b/contrib/sendmail/libmilter/listener.c @@ -9,7 +9,7 @@ */ #include <sm/gen.h> -SM_RCSID("@(#)$Id: listener.c,v 8.85 2002/05/28 18:17:41 gshapiro Exp $") +SM_RCSID("@(#)$Id: listener.c,v 8.85.2.1 2002/08/09 22:13:36 gshapiro Exp $") /* ** listener.c -- threaded network listener @@ -621,12 +621,19 @@ mi_closener() st.tv_sec = (s); \ st.tv_usec = 0; \ if (st.tv_sec > 0) \ - rs = select(0, NULL, NULL, NULL, &st); \ - if (rs != 0) \ { \ - smi_log(SMI_LOG_ERR, \ - "MI_SLEEP(): select() returned non-zero result %d, errno = %d", \ - rs, errno); \ + for (;;) \ + { \ + rs = select(0, NULL, NULL, NULL, &st); \ + if (rs < 0 && errno == EINTR) \ + continue; \ + if (rs != 0) \ + { \ + smi_log(SMI_LOG_ERR, \ + "MI_SLEEP(): select() returned non-zero result %d, errno = %d", \ + rs, errno); \ + } \ + } \ } \ } #else /* BROKEN_PTHREAD_SLEEP */ |
