equal
deleted
inserted
replaced
1 diff --git a/lib/isc/pthreads/condition.c b/lib/isc/pthreads/condition.c |
|
2 index 50281a2..ca33e66 100644 |
|
3 --- a/lib/isc/pthreads/condition.c |
|
4 +++ b/lib/isc/pthreads/condition.c |
|
5 @@ -43,7 +43,14 @@ isc_condition_waituntil(isc_condition_t *c, isc_mutex_t *m, isc_time_t *t) { |
|
6 * POSIX defines a timespec's tv_sec as time_t. |
|
7 */ |
|
8 result = isc_time_secondsastimet(t, &ts.tv_sec); |
|
9 - if (result != ISC_R_SUCCESS) |
|
10 + |
|
11 + /* |
|
12 + * If we have a range error ts.tv_sec is most probably a signed |
|
13 + * 32 bit value. Set ts.tv_sec to INT_MAX. This is a kludge. |
|
14 + */ |
|
15 + if (result == ISC_R_RANGE) |
|
16 + ts.tv_sec = INT_MAX; |
|
17 + else if (result != ISC_R_SUCCESS) |
|
18 return (result); |
|
19 |
|
20 /*! |
|