From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christopher Faylor To: jmm@raleigh.ibm.com, cygwin@sourceware.cygnus.com Subject: Re: pid problem found Date: Sun, 28 Feb 1999 23:02:00 -0000 Message-ID: <19990207230759.A11115@cygnus.com> References: <199902080327.WAA24699@jmm.raleigh.ibm.com> X-SW-Source: 1999-02n/msg00206.html Message-ID: <19990228230200.WhXltIYVBabOqiSIBWm5OYDtZFabcK2McMKdzfMnjgk@z> On Sun, Feb 07, 1999 at 10:27:07PM -0500, jmm@raleigh.ibm.com wrote: >Ok, this may still be a B20.1 problem, but I'm definitely more shaky >about it now. It turns out that after CreateProcess, the returned >PROCESS_INFORMATION structure has a dwProcessId entry that's usally >between 3 to 5 times the value of the real pid. There is absolutely no relationship between the dwProcessId returned by CreateProcess and a cygwin pid. Cygwin pids are generated by the DLL. We can't use the Windows pid because Windows doesn't support anything like the exec() function. So, we have to enforce our own pids independently of Windows. If you want to use cygwin functions to wait for pids you'll have to use cygwin functions to create processes as well. >for instance, the spawned child's real PID will be 1070, but >the dwProcessId will give 3919... the next run, real PID is 1072, >but dwProcessId gives 4663, a third time real is 1075, dwProcessId >returns 3033. > >(I've been using dwProcessId to save the pid for later waitpid() calls, >which now explains why those were failing) -- cgf@cygnus.com http://www.cygnus.com/ -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe@sourceware.cygnus.com