diff options
author | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-06-21 20:56:37 +0000 |
---|---|---|
committer | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-06-21 20:56:37 +0000 |
commit | 4026b9778b81cfd22bc8fa18c1e0d3beb32dbc8f (patch) | |
tree | 55fd808e47f53739af4e710b68299196cc64643e /boehm-gc/include | |
parent | 7d3075f603f9e3ec6240cc87ff86d5ff84fc983f (diff) | |
download | gcc-4026b9778b81cfd22bc8fa18c1e0d3beb32dbc8f.tar.gz |
* pthread_stop_world.c (GC_suspend_handler): Redirect to suspension
routine if signal is received and thread is flagged SUSPENDED.
(suspend_self): New function.
(GC_suspend_thread): New function.
(GC_resume_thread): New function.
* include/gc.h (GC_suspend_thread): Declare.
(GC_resumet_thread): Declare.
* include/private/pthread_support.h (SUSPENDED): New GC_thread
flag.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114869 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/include')
-rw-r--r-- | boehm-gc/include/gc.h | 10 | ||||
-rw-r--r-- | boehm-gc/include/private/pthread_support.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/boehm-gc/include/gc.h b/boehm-gc/include/gc.h index 3507db74dc5..e6ab2c608c4 100644 --- a/boehm-gc/include/gc.h +++ b/boehm-gc/include/gc.h @@ -1040,4 +1040,14 @@ GC_API void GC_register_has_static_roots_callback } /* end of extern "C" */ #endif +/* External thread suspension support. These functions do not implement + * suspension counts or any other higher-level abstraction. Threads which + * have been suspended numerous times will resume with the very first call + * to GC_resume_thread. + */ +#if defined(GC_PTHREADS) && !defined(GC_SOLARIS_THREADS) \ + && !defined(GC_WIN32_THREADS) && !defined(GC_DARWIN_THREADS) +GC_API void GC_suspend_thread GC_PROTO((pthread_t)); +GC_API void GC_resume_thread GC_PROTO((pthread_t)); +#endif #endif /* _GC_H */ diff --git a/boehm-gc/include/private/pthread_support.h b/boehm-gc/include/private/pthread_support.h index 469021b4071..2186c079039 100644 --- a/boehm-gc/include/private/pthread_support.h +++ b/boehm-gc/include/private/pthread_support.h @@ -33,6 +33,7 @@ typedef struct GC_Thread_Rep { # define FINISHED 1 /* Thread has exited. */ # define DETACHED 2 /* Thread is intended to be detached. */ # define MAIN_THREAD 4 /* True for the original thread only. */ +# define SUSPENDED 8 /* True if thread was suspended externally */ short thread_blocked; /* Protected by GC lock. */ /* Treated as a boolean value. If set, */ /* thread will acquire GC lock before */ |