summaryrefslogtreecommitdiff
path: root/boehm-gc/pthread_stop_world.c
diff options
context:
space:
mode:
authorkseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-23 21:10:09 +0000
committerkseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-23 21:10:09 +0000
commitd58a52c6639a886c34207bb9d54f6410fc22e9ba (patch)
treea822c7088bc6655548461fbcca4c0a74b1e7d525 /boehm-gc/pthread_stop_world.c
parent4712681555dfa63280eeb06b6c609e657b1f3cfb (diff)
downloadgcc-d58a52c6639a886c34207bb9d54f6410fc22e9ba.tar.gz
* include/gc.h (GC_is_thread_suspended): Declare.
* pthread_stop_world.c (GC_is_thread_suspended): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124081 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/pthread_stop_world.c')
-rw-r--r--boehm-gc/pthread_stop_world.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/boehm-gc/pthread_stop_world.c b/boehm-gc/pthread_stop_world.c
index 211e6b89e06..bc3c901dccf 100644
--- a/boehm-gc/pthread_stop_world.c
+++ b/boehm-gc/pthread_stop_world.c
@@ -483,6 +483,14 @@ void GC_resume_thread(pthread_t thread) {
t -> flags &= ~SUSPENDED;
}
+int GC_is_thread_suspended(pthread_t thread) {
+ GC_thread t = GC_lookup_thread(thread);
+ if (t == NULL)
+ ABORT("querying suspension state of unknown thread");
+
+ return (t -> flags & SUSPENDED);
+}
+
/* Caller holds allocation lock, and has held it continuously since */
/* the world stopped. */
void GC_start_world()