mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-12 13:23:47 +08:00
b834f1fa06
* Makefile.in: New #defines and friends for Thread.h. * posix-threads.cc: (struct starter): Remove `object'. (_Jv_CondWait): Use interruptable condition variables and new recursive mutexes. New return codes on interrupt or non-ownership of mutex. (_Jv_CondNotify): Ditto. (_Jv_CondNotifyAll): Ditto. (_Jv_ThreadInterrupt): Set thread interrupt flag directly. Interrupt the target thread by signaling its wait condition. (_Jv_ThreadInitData): Set `thread_obj' in the thread data struct, not the starter struct. Initialize wait_mutex and wait_cond. (_Jv_MutexLock): New recursive mutex implementation. Moved from posix-threads.h. (_Jv_MutexUnlock): Ditto. (really_start): Set info->data->thread from pthread_self() to work around a race condition. Destroy wait_mutex and wait_cond when run() returns. * java/lang/Thread.java: (isInterrupted_): Renamed to overloaded `isInterrupted(boolean)'. Clear interrupted flag if clear_flag is set. startable_flag: New private field. (Thread): Initialize `startable_flag'. (toString): Check for null thread group. * java/lang/natThread.cc: (struct natThread): New fields `join_mutex', `join_cond'. Removed fields `joiner', `next'. (class locker): Removed. (initialize_native): Initialize `join_cond' and `join_mutex'. (interrupt): Now just calls _Jv_ThreadInterrupt(). (join): Simplified. Just wait on the target thread's join condition. (finish_): Remove join list code. Unset thread group. Signal potential joiners by notifying the dying threads join_cond. (start): Check for illegal restarts. * java/lang/natObject.cc: Check for return value of _Jv_CondWait and act appropriatly. * include/posix-threads.h: Remove all HAVE_RECURSIVE_MUTEX related #defines and #ifdefs. (struct _Jv_Thread_t): New fields `thread_obj', `wait_cond', `wait_mutex', `next'. (struct _Jv_ConditionVariable_t): Define as a struct instead of directly mapping to pthread_cond_t. (struct _Jv_Mutex_t): New recursive implementation. (_Jv_PthreadCheckMonitor): Reimplemented. Simple `owner' check. _Jv_HaveCondDestroy: Never define this for posix-threads. (_Jv_CondNotify): Remove inline implementation(s), prototype instead. (_Jv_CondNotifyAll): Ditto. (_Jv_MutexLock): Ditto. (_Jv_MutexUnlock): Ditto. (_Jv_MutexInit): Changed to reflect new mutex implementation. (_Jv_MutexDestroy): Ditto. (_Jv_CondDestroy): Removed. (_Jv_PthreadGetMutex): Removed. * include/win32-threads.h: (_Jv_CondNotify): Guess _JV_NOT_OWNER on an error. Add a FIXME about this. (_Jv_CondNotifyAll): Ditto. * win32-threads.cc: (_Jv_CondWait): Return 0 on a timeout. Guess _JV_NOT_OWNER on other errors. Add FIXME. From-SVN: r32773 |
||
---|---|---|
.. | ||
doc | ||
gcj | ||
gnu/gcj | ||
include | ||
java | ||
libltdl | ||
scripts | ||
testsuite | ||
acconfig.h | ||
acinclude.m4 | ||
aclocal.m4 | ||
boehm.cc | ||
ChangeLog | ||
ChangeLog-1999 | ||
chartables.pl | ||
configure | ||
configure.host | ||
configure.in | ||
COPYING | ||
defineclass.cc | ||
exception.cc | ||
gij.cc | ||
interpret.cc | ||
jni.cc | ||
LIBGCJ_LICENSE | ||
libgcj-test.spec.in | ||
libgcj.spec.in | ||
libgcjdata.c | ||
libtool-version | ||
Makefile.am | ||
Makefile.in | ||
mauve-libgcj | ||
name-finder.cc | ||
NEWS | ||
no-threads.cc | ||
nogc.cc | ||
posix-threads.cc | ||
prims.cc | ||
README | ||
resolve.cc | ||
THANKS | ||
win32-threads.cc |
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://sourceware.cygnus.com/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://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?database=java