X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Cleanup.xs;h=948c38f767fa36330cb694dcb32f8c98386eb615;hb=47a74c22cce1fd5d5aa148d6005b324aeeae489e;hp=6c80606ea8554e846898e5b84fcf6a4ebe824d7d;hpb=b591e949fa7623c80aa62f8a0afeb7faed57a7cd;p=perl%2Fmodules%2FThread-Cleanup.git diff --git a/Cleanup.xs b/Cleanup.xs index 6c80606..948c38f 100644 --- a/Cleanup.xs +++ b/Cleanup.xs @@ -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"); }