KWSys 2014-05-19 (c282e64f)
Extract upstream KWSys using the following shell commands. $ git archive --prefix=upstream-kwsys/ c282e64f | tar x $ git shortlog --no-merges --abbrev=8 --format='%h %s' 6074f33f..c282e64f Brad King (2): 2e00d252 SystemTools: Port cygwin path conversion to modern API c282e64f Process: Workaround child kill trouble on Cygwin Change-Id: I39a3ca47fbb4065eff922d94e6d7019c417ed75c
This commit is contained in:
parent
7762c57405
commit
ed52685dd7
|
@ -2413,6 +2413,12 @@ static void kwsysProcessKill(pid_t process_id)
|
||||||
/* Suspend the process to be sure it will not create more children. */
|
/* Suspend the process to be sure it will not create more children. */
|
||||||
kill(process_id, SIGSTOP);
|
kill(process_id, SIGSTOP);
|
||||||
|
|
||||||
|
#if defined(__CYGWIN__)
|
||||||
|
/* Some Cygwin versions seem to need help here. Give up our time slice
|
||||||
|
so that the child can process SIGSTOP before we send SIGKILL. */
|
||||||
|
usleep(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Kill all children if we can find them. */
|
/* Kill all children if we can find them. */
|
||||||
#if defined(__linux__) || defined(__CYGWIN__)
|
#if defined(__linux__) || defined(__CYGWIN__)
|
||||||
/* First try using the /proc filesystem. */
|
/* First try using the /proc filesystem. */
|
||||||
|
|
|
@ -92,7 +92,7 @@ extern char **environ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __CYGWIN__
|
#ifdef __CYGWIN__
|
||||||
extern "C" void cygwin_conv_to_win32_path(const char *path, char *win32_path);
|
# include <sys/cygwin.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// getpwnam doesn't exist on Windows and Cray Xt3/Catamount
|
// getpwnam doesn't exist on Windows and Cray Xt3/Catamount
|
||||||
|
@ -1113,7 +1113,10 @@ bool SystemTools::PathCygwinToWin32(const char *path, char *win32_path)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cygwin_conv_to_win32_path(path, win32_path);
|
if(cygwin_conv_path(CCP_POSIX_TO_WIN_A, path, win32_path, MAX_PATH) != 0)
|
||||||
|
{
|
||||||
|
win32_path[0] = 0;
|
||||||
|
}
|
||||||
SystemToolsTranslationMap::value_type entry(path, win32_path);
|
SystemToolsTranslationMap::value_type entry(path, win32_path);
|
||||||
SystemTools::Cyg2Win32Map->insert(entry);
|
SystemTools::Cyg2Win32Map->insert(entry);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue