diff --git a/legacy/ecore/src/lib/ecore/ecore_exe_win32.c b/legacy/ecore/src/lib/ecore/ecore_exe_win32.c index 60ca1ef6ef..17ce58664b 100644 --- a/legacy/ecore/src/lib/ecore/ecore_exe_win32.c +++ b/legacy/ecore/src/lib/ecore/ecore_exe_win32.c @@ -2,6 +2,14 @@ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 */ +/* + * TODO: + * - manage priority + * - manage I/O pipes + * - add events for start/close, maybe others + * - manage SetConsoleCtrlHandler ? + */ + #ifdef HAVE_CONFIG_H # include #endif @@ -113,6 +121,10 @@ EAPI Ecore_Exe *ecore_exe_pipe_run(const char *exe_cmd, Ecore_Exe_Flags flags, c 0, NULL, NULL, &si, &pi)) goto free_exe_cmd; + /* be sure that the child process is running */ + if (WaitForInputIdle(pi.hProcess, INFINITE) != 0) + goto free_exe_cmd; + exe->thread = pi.hThread; exe->process_id = pi.dwProcessId; exe->thread_id = pi.dwThreadId;