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
Keith Seitz wrote:
Bryce McKinlay wrote:
Would the following work? _Jv_SuspendThread would take a
_Jv_ThreadDesc_t argument, and use _Jv_GetPlatformThreadID() on it.
GC_suspend_thread() etc would be defined in gc.h with whatever the
correct argument type is depending on the platform.
Yeah, that should work. I think this is a combination of nos. 3 and 4
on my list:
I've checked this in to trunk.
Bryce
2006-06-21 Bryce McKinlay <mckinlay@redhat.com>
* include/win32-threads.h (_Jv_ThreadDesc_t): New typedef.
(_Jv_GetPlatformThreadID): New function.
* include/posix-threads.h (_Jv_ThreadDesc_t): New typedef.
(_Jv_GetPlatformThreadID): New function.
Index: win32-threads.h
===================================================================
--- win32-threads.h (revision 114472)
+++ win32-threads.h (working copy)
@@ -72,6 +72,15 @@
typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
+// Type identifying a win32 thread.
+typedef HANDLE _Jv_ThreadDesc_t;
+
+inline _Jv_ThreadDesc_t
+_Jv_GetPlatformThreadID(_Jv_Thread_t *t)
+{
+ return t->handle;
+}
+
//
// Condition variables.
//
Index: posix-threads.h
===================================================================
--- posix-threads.h (revision 114472)
+++ posix-threads.h (working copy)
@@ -47,7 +47,6 @@
typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
-
// Condition Variables used to implement wait/notify/sleep/interrupt.
typedef struct
{
@@ -82,6 +81,15 @@
return (mu->owner != pthread_self());
}
+// Type identifying a POSIX thread.
+typedef pthread_t _Jv_ThreadDesc_t;
+
+inline _Jv_ThreadDesc_t
+_Jv_GetPlatformThreadID(_Jv_Thread_t *t)
+{
+ return t->thread;
+}
+
//
// Condition variables.
//