* add some todo
authorcaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 25 Oct 2009 08:23:28 +0000 (08:23 +0000)
committercaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 25 Oct 2009 08:23:28 +0000 (08:23 +0000)
 * after creating a child process, wait until it is really
   running

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@43256 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/ecore/ecore_exe_win32.c

index 60ca1ef..17ce586 100644 (file)
@@ -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 <config.h>
 #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;