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)); +}