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 |
||
---|---|---|
.. | ||
doc | ||
gcj | ||
gnu | ||
include | ||
java | ||
javax | ||
libltdl | ||
org | ||
scripts | ||
sysdep | ||
testsuite | ||
COPYING | ||
ChangeLog | ||
ChangeLog-1999 | ||
ChangeLog-2001 | ||
HACKING | ||
LIBGCJ_LICENSE | ||
Makefile.am | ||
Makefile.in | ||
NEWS | ||
README | ||
THANKS | ||
acconfig.h | ||
acinclude.m4 | ||
aclocal.m4 | ||
addr2name.awk | ||
boehm.cc | ||
configure | ||
configure.host | ||
configure.in | ||
defineclass.cc | ||
exception.cc | ||
gij.cc | ||
interpret.cc | ||
jni.cc | ||
libgcj-test.spec.in | ||
libgcj.spec.in | ||
libtool-version | ||
mauve-libgcj | ||
no-threads.cc | ||
nogc.cc | ||
posix-threads.cc | ||
posix.cc | ||
prims.cc | ||
resolve.cc | ||
verify.cc | ||
win32-threads.cc | ||
win32.cc |
README
This is libgcj: the runtime library for gcj, the GNU Compiler for Java. libgcj provides a partial implementation of the Java Class Libraries. libgcj is free software. See the file LIBGCJ_LICENSE for copying permission. DOCUMENTATION ============= All documentation, including detailed installation and usage instructions, can be found on the gcj web pages at this URL: http://gcc.gnu.org/java/ REQUIREMENTS ============ libgcj must be built with a compatible version of the gcc compiler. libgcj releases are usually numbered according to their corresponding gcc release. For example, if this is "libgcj 2.95.3", you need to build it using "gcc 2.95.3". QUICK INSTALLATION ================== > mkdir build > cd build > ../libgcj/configure --enable-threads=<THREADS_TYPE> --prefix=<DIR> > make > make install where: <THREADS_TYPE> specifies the threads library to be used by libgcj. Currently the possible values are "posix" and "none". This value must be the same as the value used when configuring gcc itself. <DIR> specifies the installation directory. This should be the same location as where gcc is installed. Consult the gcj web pages for additional "configure" arguments. NOTE: libgcj can not be built in the same directory as `configure'. You must create a separate build directory. BUGS ==== Please submit bug reports via this URL: http://gcc.gnu.org/cgi-bin/gnatsweb.pl?database=gcc