diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-21 22:07:30 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-21 22:07:30 +0000 |
| commit | 33b8ea2a147a3bf8f4617b0399cbb2b2dbbb6f9e (patch) | |
| tree | 4c9de9e1ba2a27a47f6d8da1bbd87446fe43e48f /libjava/java/lang/natThread.cc | |
| parent | e405ec65e3d665ec66e9356351e7da3e02dd8232 (diff) | |
| download | ppe42-gcc-33b8ea2a147a3bf8f4617b0399cbb2b2dbbb6f9e.tar.gz ppe42-gcc-33b8ea2a147a3bf8f4617b0399cbb2b2dbbb6f9e.zip | |
boehm-gc
PR libgcj/13212:
* configure.ac: Check for pthread_getattr_np(). Remove
GC_PTHREAD_SYM_VERSION detection.
* include/gc.h (GC_register_my_thread, GC_unregister_my_thread,
GC_get_thread_stack_base): New declarations.
* pthread_support.c (GC_register_my_thread, GC_unregister_my_thread,
GC_get_thread_stack_base): New functions.
(GC_delete_thread): Don't try to free the first_thread.
* misc.c (GC_init_inner): Use GC_get_thread_stack_base() if possible.
(pthread_create_, constr): Removed.
(pthread_create): Don't rename.
* include/gc_ext_config.h.in: Rebuilt.
* include/gc_pthread_redirects.h (pthread_create): Define
unconditionally.
* include/gc_config.h.in: Rebuilt.
* configure: Rebuilt.
libjava
* java/lang/natThread.cc (_Jv_AttachCurrentThread): Attach thread
to GC.
(_Jv_DetachCurrentThread): Detach thread from GC.
* include/boehm-gc.h (_Jv_GCAttachThread, _Jv_GCDetachThread):
Declare.
* boehm.cc (_Jv_GCAttachThread): New function.
(_Jv_GCDetachThread): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116313 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/natThread.cc')
| -rw-r--r-- | libjava/java/lang/natThread.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libjava/java/lang/natThread.cc b/libjava/java/lang/natThread.cc index f778510bebd..facce30fa2e 100644 --- a/libjava/java/lang/natThread.cc +++ b/libjava/java/lang/natThread.cc @@ -410,7 +410,8 @@ _Jv_SetCurrentJNIEnv (JNIEnv *env) } // Attach the current native thread to an existing (but unstarted) Thread -// object. Returns -1 on failure, 0 upon success. +// object. Does not register thread with the garbage collector. +// Returns -1 on failure, 0 upon success. jint _Jv_AttachCurrentThread(java::lang::Thread* thread) { @@ -427,6 +428,8 @@ _Jv_AttachCurrentThread(java::lang::Thread* thread) java::lang::Thread* _Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group) { + // Register thread with GC before attempting any allocations. + _Jv_GCAttachThread (); java::lang::Thread *thread = _Jv_ThreadCurrent (); if (thread != NULL) return thread; @@ -461,6 +464,7 @@ _Jv_DetachCurrentThread (void) return -1; _Jv_ThreadUnRegister (); + _Jv_GCDetachThread (); // Release the monitors. t->finish_ (); |

