]> granicus.if.org Git - gc/commitdiff
In libgc:
authorZoltan Varga <vargaz@gmail.com>
Sun, 25 Oct 2009 22:01:54 +0000 (22:01 +0000)
committerguest <ivmai@mail.ru>
Fri, 29 Jul 2011 11:31:22 +0000 (15:31 +0400)
2009-10-25  Zoltan Varga  <vargaz@gmail.com>

* misc.c (GC_get_suspend_signal): New API function to return the suspend signal
used by libgc.

In mono/mini:

2009-10-25  Zoltan Varga  <vargaz@gmail.com>

* mini-posix.c (add_signal_handler): Delay the GC suspend signal while
executing a SIGSEGV handler on an altstack, since libgc can't handle that.

In mono/tests:

2009-10-25  Zoltan Varga  <vargaz@gmail.com>

* misc.c (GC_get_suspend_signal): New API function to return the suspend signal
used by libgc.

svn path=/trunk/mono/; revision=144828

ChangeLog
include/gc.h
misc.c

index 661feb8a64840686cd10e65419b8d74c4b5fb526..7650d9c3ea30fbd1d9181b47e53fc7e76ebf9a32 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-25  Zoltan Varga  <vargaz@gmail.com>
+
+       * misc.c (GC_get_suspend_signal): New API function to return the suspend signal
+       used by libgc.
+
 2009-09-29  Zoltan Varga  <vargaz@gmail.com>
 
        * solaris_threads.c (GC_thr_daemon): Don't crash if GC_lookup_thread () returns
index ef3a06c11f5b47a2cfc9de6e8594d0d972583ceb..d77de303e0d5e69193214b20d8dabcba1ad847d1 100644 (file)
@@ -424,6 +424,10 @@ GC_API size_t GC_get_bytes_since_gc GC_PROTO((void));
 /* Never decreases, except due to wrapping.                            */
 GC_API size_t GC_get_total_bytes GC_PROTO((void));
 
+/* Return the signal used by the gc to suspend threads on posix platforms. */
+/* Return -1 otherwise. */
+int GC_get_suspend_signal GC_PROTO((void));
+
 /* Disable garbage collection.  Even GC_gcollect calls will be                 */
 /* ineffective.                                                                */
 GC_API void GC_disable GC_PROTO((void));
diff --git a/misc.c b/misc.c
index 4744faa405e9305b2ecbd0f1b05631cc2aa07762..79c8178e73e42cb187f7a4f0eb776e6e81ecd621 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -468,6 +468,15 @@ size_t GC_get_total_bytes GC_PROTO(())
     return ((size_t) WORDS_TO_BYTES(GC_words_allocd+GC_words_allocd_before_gc));
 }
 
+int GC_get_suspend_signal GC_PROTO(())
+{
+#ifdef SIG_SUSPEND
+       return SIG_SUSPEND;
+#else
+       return -1;
+#endif
+}
+
 GC_bool GC_is_initialized = FALSE;
 
 void GC_init()