summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-01-11 01:22:36 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-01-11 01:22:36 +0000
commitad4e2db76417dc3c9feb57d207a4bcf3bf734aaf (patch)
tree139498891b1d668008d3cece3bc599ad659b874d /win32
parentdedd9aebfdb348ca37903d672beb2069515fc6d1 (diff)
downloadperl-ad4e2db76417dc3c9feb57d207a4bcf3bf734aaf.tar.gz
pseudo forked children inherit environment correctly
p4raw-id: //depot/perl@4792
Diffstat (limited to 'win32')
-rw-r--r--win32/perlhost.h21
1 files changed, 11 insertions, 10 deletions
diff --git a/win32/perlhost.h b/win32/perlhost.h
index 031c2b5227..93cb4580b0 100644
--- a/win32/perlhost.h
+++ b/win32/perlhost.h
@@ -1723,7 +1723,7 @@ PerlProcFork(struct IPerlProc* piPerl)
#ifdef USE_ITHREADS
DWORD id;
HANDLE handle;
- CPerlHost *h = new CPerlHost();
+ CPerlHost *h = new CPerlHost(*(CPerlHost*)w32_internal_host);
PerlInterpreter *new_perl = perl_clone_using((PerlInterpreter*)aTHXo, 1,
h->m_pHostperlMem,
h->m_pHostperlMemShared,
@@ -1735,6 +1735,7 @@ PerlProcFork(struct IPerlProc* piPerl)
h->m_pHostperlSock,
h->m_pHostperlProc
);
+ new_perl->Isys_intern.internal_host = h;
# ifdef PERL_SYNC_FORK
id = win32_start_child((LPVOID)new_perl);
PERL_SET_INTERP(aTHXo);
@@ -1941,15 +1942,15 @@ CPerlHost::CPerlHost(CPerlHost& host)
CopyMemory(&m_hostperlDir, &perlDir, sizeof(perlDir));
CopyMemory(&m_hostperlSock, &perlSock, sizeof(perlSock));
CopyMemory(&m_hostperlProc, &perlProc, sizeof(perlProc));
- m_pHostperlMem = &host.m_hostperlMem;
- m_pHostperlMemShared = &host.m_hostperlMemShared;
- m_pHostperlMemParse = &host.m_hostperlMemParse;
- m_pHostperlEnv = &host.m_hostperlEnv;
- m_pHostperlStdIO = &host.m_hostperlStdIO;
- m_pHostperlLIO = &host.m_hostperlLIO;
- m_pHostperlDir = &host.m_hostperlDir;
- m_pHostperlSock = &host.m_hostperlSock;
- m_pHostperlProc = &host.m_hostperlProc;
+ m_pHostperlMem = &m_hostperlMem;
+ m_pHostperlMemShared = &m_hostperlMemShared;
+ m_pHostperlMemParse = &m_hostperlMemParse;
+ m_pHostperlEnv = &m_hostperlEnv;
+ m_pHostperlStdIO = &m_hostperlStdIO;
+ m_pHostperlLIO = &m_hostperlLIO;
+ m_pHostperlDir = &m_hostperlDir;
+ m_pHostperlSock = &m_hostperlSock;
+ m_pHostperlProc = &m_hostperlProc;
m_dwEnvCount = 0;
m_lppEnvList = NULL;