This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Re: [RFA] Boehm GC support addition for debugging
- From: Keith Seitz <keiths at redhat dot com>
- To: Bryce McKinlay <mckinlay at redhat dot com>
- Cc: Java Patch List <java-patches at gcc dot gnu dot org>
- Date: Wed, 21 Jun 2006 14:11:04 -0700
- Subject: Re: [RFA] Boehm GC support addition for debugging
- References: <4496CF73.7000507@redhat.com> <449848BF.8070503@redhat.com>
Bryce McKinlay wrote:
nogc.cc should also be updated.
I've updated the patch to include this nogc.cc and include/no-gc.h for
final approval.
Keith
ChangeLog
2006-06-21 Keith Seitz <keiths@redhat.com>
* include/no-gc.h (_Jv_SuspendThread): Declare.
(_Jv_ResumeThread): Likewise.
* include/boehm-gc.h (_Jv_SuspendThread): Declare.
(_Jv_ResumeThread): Likewise.
* nogc.cc (_Jv_SuspendThread): New function.
(_Jv_ResumeThread): Likewise.
* boehm-gc.cc (_Jv_SuspendThread): New function.
(_Jv_ResumeThread): Likewise.
Index: include/no-gc.h
===================================================================
--- include/no-gc.h (revision 114859)
+++ include/no-gc.h (working copy)
@@ -1,7 +1,7 @@
// -*- c++ -*-
// no-gc.h - Defines for no garbage collector.
-/* Copyright (C) 1998, 1999 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2006 Free Software Foundation
This file is part of libgcj.
@@ -12,6 +12,10 @@
#ifndef __JV_NO_GC__
#define __JV_NO_GC__
-// Nothing.
+// Suspend the given thread. This includes suspending the calling thread.
+extern "C" void _Jv_SuspendThread (_Jv_Thread_t*);
+// Resume a suspended thread.
+extern "C" void _Jv_ResumeThread (_Jv_Thread_t*);
+
#endif /* __JV_NO_GC__ */
Index: include/boehm-gc.h
===================================================================
--- include/boehm-gc.h (revision 114859)
+++ include/boehm-gc.h (working copy)
@@ -1,7 +1,7 @@
// -*- c++ -*-
// boehm-gc.h - Defines for Boehm collector.
-/* Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2002, 2004, 2006 Free Software Foundation
This file is part of libgcj.
@@ -83,4 +83,10 @@
// _Jv_AllocBytes (jsize size) should go here, too. But clients don't
// usually include this header.
+// Suspend the given thread. This includes suspending the calling thread.
+extern "C" void _Jv_SuspendThread (_Jv_Thread_t*);
+
+// Resume a suspended thread.
+extern "C" void _Jv_ResumeThread (_Jv_Thread_t*);
+
#endif /* __JV_BOEHM_GC__ */
Index: nogc.cc
===================================================================
--- nogc.cc (revision 114617)
+++ nogc.cc (working copy)
@@ -1,6 +1,6 @@
// nogc.cc - Implement null garbage collector.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2006 Free Software Foundation
This file is part of libgcj.
@@ -165,3 +165,13 @@
return result;
}
#endif /* JV_HASH_SYNCHRONIZATION */
+
+void
+_Jv_SuspendThread (_Jv_Thread_t* thread)
+{
+}
+
+void
+_Jv_ResumeThread (_Jv_Thread_t* thread)
+{
+}
Index: boehm.cc
===================================================================
--- boehm.cc (revision 114617)
+++ boehm.cc (working copy)
@@ -673,3 +673,14 @@
#endif
}
+void
+_Jv_SuspendThread (_Jv_Thread_t* thread)
+{
+ GC_suspend_thread (_Jv_GetPlatformThreadID (thread));
+}
+
+void
+_Jv_ResumeThread (_Jv_Thread_t* thread)
+{
+ GC_resume_thread (_Jv_GetPlatformThreadID (thread));
+}