1 /* This file is part of the Thread::Cleanup Perl module.
2 * See http://search.cpan.org/dist/Thread-Cleanup/ */
4 #define PERL_NO_GET_CONTEXT
9 #define __PACKAGE__ "Thread::Cleanup"
10 #define __PACKAGE_LEN__ (sizeof(__PACKAGE__)-1)
12 #define TC_HAS_PERL(R, V, S) (PERL_REVISION > (R) || (PERL_REVISION == (R) && (PERL_VERSION > (V) || (PERL_VERSION == (V) && (PERL_SUBVERSION >= (S))))))
15 #if defined(ENTER_with_name) && !TC_HAS_PERL(5, 11, 4)
16 # define ENTERn(N) ENTER_with_name(N)
18 # define ENTERn(N) ENTER
22 #if defined(LEAVE_with_name) && !TC_HAS_PERL(5, 11, 4)
23 # define LEAVEn(N) LEAVE_with_name(N)
25 # define LEAVEn(N) LEAVE
28 STATIC void tc_callback(pTHX_ void *);
30 STATIC void tc_callback(pTHX_ void *ud) {
37 SAVEDESTRUCTOR_X(tc_callback, level);
42 PerlMemShared_free(level);
50 call_pv(__PACKAGE__ "::_CLEANUP", G_VOID | G_EVAL);
59 MODULE = Thread::Cleanup PACKAGE = Thread::Cleanup
69 level = PerlMemShared_malloc(sizeof *level);
72 SAVEDESTRUCTOR_X(tc_callback, level);