{
dTHXo;
HANDLE hProcess;
+ long child;
#ifdef USE_ITHREADS
if (pid < 0) {
/* it is a pseudo-forked child */
- long child = find_pseudo_pid(-pid);
+ child = find_pseudo_pid(-pid);
if (child >= 0) {
if (!sig)
return 0;
else
#endif
{
- long child = find_pid(pid);
+ child = find_pid(pid);
if (child >= 0) {
if (!sig)
return 0;
char *arch;
GetSystemInfo(&info);
-#if defined(__BORLANDC__) || defined(__MINGW32__)
+#if (defined(__BORLANDC__)&&(__BORLANDC__<=0x520)) || defined(__MINGW32__)
switch (info.u.s.wProcessorArchitecture) {
#else
switch (info.wProcessorArchitecture) {
dTHXo;
DWORD timeout = (flags & WNOHANG) ? 0 : INFINITE;
int retval = -1;
+ long child;
if (pid == -1) /* XXX threadid == 1 ? */
return win32_wait(status);
#ifdef USE_ITHREADS
else if (pid < 0) {
- long child = find_pseudo_pid(-pid);
+ child = find_pseudo_pid(-pid);
if (child >= 0) {
HANDLE hThread = w32_pseudo_child_handles[child];
DWORD waitcode = WaitForSingleObject(hThread, timeout);
else {
HANDLE hProcess;
DWORD waitcode;
- long child = find_pid(pid);
+ child = find_pid(pid);
if (child >= 0) {
hProcess = w32_child_handles[child];
waitcode = WaitForSingleObject(hProcess, timeout);
shortpath = sv_mortalcopy(ST(0));
SvUPGRADE(shortpath, SVt_PV);
+ if (!SvPVX(shortpath) || !SvLEN(shortpath))
+ XSRETURN_UNDEF;
+
/* src == target is allowed */
do {
len = GetShortPathName(SvPVX(shortpath),
filename = ST(0);
fullpath = sv_mortalcopy(filename);
SvUPGRADE(fullpath, SVt_PV);
+ if (!SvPVX(fullpath) || !SvLEN(fullpath))
+ XSRETURN_UNDEF;
+
do {
len = GetFullPathName(SvPVX(filename),
SvLEN(fullpath),
Newz(1313, dst->children, 1, child_tab);
dst->pseudo_id = 0;
Newz(1313, dst->pseudo_children, 1, child_tab);
- dst->thr_intern.Winit_socktype = src->thr_intern.Winit_socktype;
+ dst->thr_intern.Winit_socktype = 0;
}
# endif /* USE_ITHREADS */
#endif /* HAVE_INTERP_INTERN */