diff options
-rw-r--r-- | libjava/ChangeLog | 3 | ||||
-rw-r--r-- | libjava/posix-threads.cc | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 40146202..39b542a 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,8 @@ 1999-09-07 Tom Tromey <tromey@cygnus.com> + * 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 50c626f..e2f3b1b 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 |