OSDN Git Service

2003-01-28 Ranjit Mathew <rmathew@hotmail.com>
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 28 Jan 2003 22:23:36 +0000 (22:23 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 28 Jan 2003 22:23:36 +0000 (22:23 +0000)
commit6673e50fd53040331977ad026947fa6b4b240c88
tree574bb63340f70c9fa5bf9c43614d3646628d128e
parent251538cedba8a9200716284faae81608779f5b3d
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62033 138bc75d-0d04-0410-961f-82ee72b054a4
libjava/ChangeLog
libjava/include/win32-threads.h
libjava/win32-threads.cc