From 71d280e38f6b1166e3ba01f7a839868275eb4b7f Mon Sep 17 00:00:00 2001 From: Gurusamy Sarathy Date: Wed, 17 May 2000 02:24:56 +0000 Subject: [PATCH] reenable fake signal handling on Windows, bugs and all p4raw-id: //depot/perl@6108 --- mg.c | 8 ++++++++ perl.h | 1 + win32/perlhost.h | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mg.c b/mg.c index 0892511..f0b5734 100644 --- a/mg.c +++ b/mg.c @@ -2100,7 +2100,11 @@ static SV* sig_sv; Signal_t Perl_sighandler(int sig) { +#if defined(WIN32) && defined(PERL_IMPLICIT_CONTEXT) + dTHXoa(PL_curinterp); /* fake TLS, because signals don't do TLS */ +#else dTHX; +#endif dSP; GV *gv = Nullgv; HV *st; @@ -2110,6 +2114,10 @@ Perl_sighandler(int sig) U32 flags = 0; I32 o_save_i = PL_savestack_ix; XPV *tXpv = PL_Xpv; + +#if defined(WIN32) && defined(PERL_IMPLICIT_CONTEXT) + PERL_SET_THX(aTHXo); /* fake TLS, see above */ +#endif if (PL_savestack_ix + 15 <= PL_savestack_max) flags |= 1; diff --git a/perl.h b/perl.h index 2f5a560..8068381 100644 --- a/perl.h +++ b/perl.h @@ -242,6 +242,7 @@ struct perl_thread; # define aTHXo aTHX # define aTHXo_ aTHX_ # define dTHXo dTHX +# define dTHXoa(x) dTHXa(x) #endif #ifndef pTHXx diff --git a/win32/perlhost.h b/win32/perlhost.h index 51e125b..ea0d31d 100644 --- a/win32/perlhost.h +++ b/win32/perlhost.h @@ -10,6 +10,7 @@ #ifndef ___PerlHost_H___ #define ___PerlHost_H___ +#include #include "iperlsys.h" #include "vmem.h" #include "vdir.h" @@ -1639,7 +1640,7 @@ PerlProcWaitpid(struct IPerlProc* piPerl, int pid, int *status, int flags) Sighandler_t PerlProcSignal(struct IPerlProc* piPerl, int sig, Sighandler_t subcode) { - return 0; + return signal(sig, subcode); } #ifdef USE_ITHREADS -- 2.7.4