components/bind/patches/7072815.timers.patch
changeset 1012 8a4584c83985
parent 1011 30761e903875
child 1013 ed5fda46e30c
equal deleted inserted replaced
1011:30761e903875 1012:8a4584c83985
     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  	/*!