Perl-AfterFork
view release on metacpan or search on metacpan
AfterFork.xs view on Meta::CPAN
# include <sys/types.h>
# include <sys/syscall.h>
# include <unistd.h>
# endif
MODULE = Perl::AfterFork PACKAGE = Perl::AfterFork
void
reinit_pid()
PROTOTYPE:
PPCODE:
{
GV *tmpgv;
if ((tmpgv = gv_fetchpv("$", TRUE, SVt_PV))) {
SvREADONLY_off(GvSV(tmpgv));
# ifdef HAS_SYSCALL
sv_setiv(GvSV(tmpgv), (IV)syscall(SYS_getpid));
# else
sv_setiv(GvSV(tmpgv), (IV)getpid());
# endif
SvREADONLY_on(GvSV(tmpgv));
XSRETURN_YES;
} else {
XSRETURN_NO;
}
}
void
reinit_ppid()
PROTOTYPE:
PPCODE:
{
PL_ppid = (IV)getppid();
XSRETURN_YES;
}
void
reinit_pidstatus()
PROTOTYPE:
PPCODE:
{
hv_clear(PL_pidstatus); /* no kids, so don't wait for 'em */
XSRETURN_YES;
}
void
reinit()
PROTOTYPE:
PPCODE:
{
GV *tmpgv;
PL_ppid = (IV)getppid();
hv_clear(PL_pidstatus); /* no kids, so don't wait for 'em */
if ((tmpgv = gv_fetchpv("$", TRUE, SVt_PV))) {
SvREADONLY_off(GvSV(tmpgv));
# ifdef HAS_SYSCALL
sv_setiv(GvSV(tmpgv), (IV)syscall(SYS_getpid));
( run in 1.407 second using v1.01-cache-2.11-cpan-5511b514fd6 )