Change _pthread_cleanup_push and _pthread_cleanup_pop into no-ops
rather than aborts.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@237 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c
index d869d53..a8665fa 100644
--- a/coregrind/vg_libpthread.c
+++ b/coregrind/vg_libpthread.c
@@ -1524,6 +1524,28 @@
ignored("_pthread_cleanup_pop_restore");
}
+/*--------*/
+void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
+ void (*__routine) (void *),
+ void *__arg)
+{
+ static int moans = N_MOANS;
+ if (moans-- > 0)
+ ignored("_pthread_cleanup_push");
+}
+
+void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
+ int __execute)
+{
+ static int moans = N_MOANS;
+ if (moans-- > 0) {
+ if (__execute)
+ ignored("_pthread_cleanup_pop-EXECUTE");
+ else
+ ignored("_pthread_cleanup_pop-NO-EXECUTE");
+ }
+}
+
/* This doesn't seem to be needed to simulate libpthread.so's external
interface, but many people complain about its absence. */