]> gcc.gnu.org Git - gcc.git/commit
re PR java/9254 (java::lang::Object::wait(), threads-win32.cc returns wrong return...
authorRanjit Mathew <rmathew@hotmail.com>
Tue, 28 Jan 2003 22:23:36 +0000 (22:23 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Tue, 28 Jan 2003 22:23:36 +0000 (22:23 +0000)
commit65b8e87409edd85c85352d333c39efb90d7cd80c
tree574bb63340f70c9fa5bf9c43614d3646628d128e
parentc1c1d12306906a61f3c0f9f5956723a1d0f407dd
re PR java/9254 (java::lang::Object::wait(), threads-win32.cc returns wrong return codes)

2003-01-28  Ranjit Mathew  <rmathew@hotmail.com>

Fixes PR java/9254:
* include/win32-threads.h (_Jv_Mutex_t): Convert to a struct
additionally containing id of the owner thread as well as
the number of nested times the thread has acquired the mutex.
(_Jv_MutexInit): Initialise owner thread id and refcount to 0.
(_Jv_MutexDestroy): Reset owner thread id and refcount to 0.
(_Jv_MutexUnlock): Check if really the owner thread, reset
owner thread id to 0 before leaving, if leaving for the last
time.
(_Jv_MutexLock): Set owner thread id in the mutex and increment
refcount.
(_Jv_ThreadYield): Yield using a call to Sleep(0).
* win32-threads.cc (_Jv_CondWait): Check if really owner of
the passed mutex.
Pass handle of the broadcast event, instead of a pointer to it
in Win32 ResetEvent( ) call.
Remove incorrect return values.
(_Jv_CondDestroy): Close both event handles and delete
critical section.
(_Jv_CondNotify): Check if really the owner thread.
(_Jv_CondNotifyAll): Check if really the owner thread.
(_Jv_InitThreads): Change daemon_cond to a manual-reset event.
(really_start): Use SetEvent( ) to signal daemon_cond.
(_Jv_ThreadWait): Remove SignalObjectAndWait( ) and use
WaitForSingleObject( ) instead to wait for daemon_cond to be
signalled.

From-SVN: r62033
libjava/ChangeLog
libjava/include/win32-threads.h
libjava/win32-threads.cc
This page took 0.067057 seconds and 5 git commands to generate.