aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>1999-08-22 02:37:04 +0000
committerTom Tromey <tromey@gcc.gnu.org>1999-08-22 02:37:04 +0000
commit33e8c77e615b1d6d6c6e4e6785cce3d65bd08ac0 (patch)
tree82196c45beec3fc0468dccdde2c7ea72643f7ba5 /libjava
parentccfe7e465097f236b588a3c4f0408378e7b794ba (diff)
downloadgcc-33e8c77e615b1d6d6c6e4e6785cce3d65bd08ac0.zip
gcc-33e8c77e615b1d6d6c6e4e6785cce3d65bd08ac0.tar.gz
gcc-33e8c77e615b1d6d6c6e4e6785cce3d65bd08ac0.tar.bz2
re GNATS libgcj/40 (wait(timeout) wrongly throws IllegalMonitorState exception)
* posix-threads.cc (_Jv_CondWait): Treat a timeout as a normal result. PR 40. From-SVN: r28799
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/posix-threads.cc3
2 files changed, 8 insertions, 0 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index c41ff38..a3a6f50 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+1999-08-21 Tom Tromey <tromey@cygnus.com>
+
+ * posix-threads.cc (_Jv_CondWait): Treat a timeout as a normal
+ result. PR 40.
+
1999-08-21 Alexandre Oliva <oliva@dcc.unicamp.br>
* configure.in: Check for in_addr_t in netinet/in.h too. Check
diff --git a/libjava/posix-threads.cc b/libjava/posix-threads.cc
index 825b020..791c43b 100644
--- a/libjava/posix-threads.cc
+++ b/libjava/posix-threads.cc
@@ -91,6 +91,9 @@ _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu,
ts.tv_nsec = ((m % 1000) * 1000000) + nanos;
r = pthread_cond_timedwait (cv, pmu, &ts);
+ /* A timeout is a normal result. */
+ if (r && errno == ETIME)
+ r = 0;
}
return r;
}