]> git.vpit.fr Git - perl/modules/Thread-Cleanup.git/blobdiff - Cleanup.xs
This is 0.03
[perl/modules/Thread-Cleanup.git] / Cleanup.xs
index 6c80606ea8554e846898e5b84fcf6a4ebe824d7d..948c38f767fa36330cb694dcb32f8c98386eb615 100644 (file)
@@ -9,6 +9,14 @@
 #define __PACKAGE__     "Thread::Cleanup"
 #define __PACKAGE_LEN__ (sizeof(__PACKAGE__)-1)
 
+#ifndef ENTER_with_name
+# define ENTER_with_name(N) ENTER
+#endif
+
+#ifndef LEAVE_with_name
+# define LEAVE_with_name(N) LEAVE
+#endif
+
 STATIC void tc_callback(pTHX_ void *);
 
 STATIC void tc_callback(pTHX_ void *ud) {
@@ -31,9 +39,9 @@ STATIC void tc_callback(pTHX_ void *ud) {
   PUSHMARK(SP);
   PUTBACK;
 
-  call_pv(__PACKAGE__ "::_CLEANUP", G_VOID);
+  call_pv(__PACKAGE__ "::_CLEANUP", G_VOID | G_EVAL);
 
-  SPAGAIN;
+  PUTBACK;
 
   FREETMPS;
   LEAVE;
@@ -52,7 +60,7 @@ CODE:
  {
   level = PerlMemShared_malloc(sizeof *level);
   *level = 1;
-  LEAVE;
+  LEAVE_with_name("sub");
   SAVEDESTRUCTOR_X(tc_callback, level);
-  ENTER;
+  ENTER_with_name("sub");
  }