aboutsummaryrefslogtreecommitdiff
path: root/libjava/posix-threads.cc
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>1999-09-01 18:29:39 +0000
committerTom Tromey <tromey@gcc.gnu.org>1999-09-01 18:29:39 +0000
commit6e87747b6d4a8961ab49b3a21298baf546763417 (patch)
tree6fb15ec8b692fb14a98a2eaba9879e17e7f496a6 /libjava/posix-threads.cc
parentb1133adfca2570b32dd7ded5a53b336630f593d1 (diff)
downloadgcc-6e87747b6d4a8961ab49b3a21298baf546763417.zip
gcc-6e87747b6d4a8961ab49b3a21298baf546763417.tar.gz
gcc-6e87747b6d4a8961ab49b3a21298baf546763417.tar.bz2
posix-threads.cc (_Jv_CondWait): Call _Jv_PthreadCheckMonitor.
* posix-threads.cc (_Jv_CondWait): Call _Jv_PthreadCheckMonitor. * include/posix-threads.h (_Jv_PthreadCheckMonitor): New function. (_Jv_CondNotify): Use it. (_Jv_CondNotifyAll): Likewise. * java/lang/Class.h (JV_STATE_NOTHING): Correct misspelling. From-SVN: r29030
Diffstat (limited to 'libjava/posix-threads.cc')
-rw-r--r--libjava/posix-threads.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/libjava/posix-threads.cc b/libjava/posix-threads.cc
index 48f0a7f..413f7c3 100644
--- a/libjava/posix-threads.cc
+++ b/libjava/posix-threads.cc
@@ -75,6 +75,9 @@ int
_Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu,
jlong millis, jint nanos)
{
+ if (_Jv_PthreadCheckMonitor (mu))
+ return 1;
+
int r;
pthread_mutex_t *pmu;
#ifdef HAVE_RECURSIVE_MUTEX
@@ -82,6 +85,7 @@ _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu,
#else
pmu = &mu->mutex2;
#endif
+
if (millis == 0 && nanos == 0)
r = pthread_cond_wait (cv, pmu);
else
@@ -96,6 +100,7 @@ _Jv_CondWait (_Jv_ConditionVariable_t *cv, _Jv_Mutex_t *mu,
if (r && errno == ETIMEDOUT)
r = 0;
}
+
return r;
}