diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 401462028380..39b542a76449 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,8 @@ 1999-09-07 Tom Tromey + * posix-threads.cc (_Jv_CondWait): pthread_ calls return error + code and don't set errno. + * posix-threads.cc (_Jv_CondWait): Check `errno' against EINTR, not `r'. Changed `done_sleeping' to a `bool'. diff --git a/libjava/posix-threads.cc b/libjava/posix-threads.cc index 50c626fccac9..e2f3b1bab1a8 100644 --- a/libjava/posix-threads.cc +++ b/libjava/posix-threads.cc @@ -104,7 +104,7 @@ _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, r = pthread_cond_timedwait (cv, pmu, &ts); - if (r && errno == EINTR) + if (r == EINTR) { /* We were interrupted by a signal. Either this is because we were interrupted intentionally (i.e. by @@ -127,7 +127,7 @@ _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, } } } - else if (r && errno == ETIMEDOUT) + else if (r == ETIMEDOUT) { /* A timeout is a normal result. */ r = 0; @@ -139,7 +139,7 @@ _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu, while (! done_sleeping); } - return r; + return r != 0; } #ifndef RECURSIVE_MUTEX_IS_DEFAULT