Design mixed 32 and 64 bit systems.

Warren Young warren@etr-usa.com
Mon Dec 2 20:44:00 GMT 2013


On 12/2/2013 13:30, Warren Young wrote:
> On 12/2/2013 12:56, Christopher Faylor wrote:
>> On Mon, Dec 02, 2013 at 12:35:00PM -0700, Warren Young wrote:
>>> This happens because POSIX PIDs are in a table that lives in
>>> cygwin1.dll's memory space, and because there are two DLLs, there are
>>> two different PID tables.
>>
>> Actually POSIX pids are Windows PIDs.  The distinction becomes fuzzy
>> after an exec, though, where the Cygwin PID continues to be the PID
>> of the process which previously exec'ed it.
>
> Of the four PID values this pair of programs prints, shouldn't at least
> two should be the same, then?  I get four different values here:
>
> PARENT: My PID is 5048; created child PID 5684
> CHILD:  My PID is 3108; my parent's PID is 1.

I've modified the test programs a bit.  The parent can launch either a 
32- or 64-bit child, and I've modified the two processes' output so 
they're easier to distinguish.

Run without args, parent64 still runs child32, but you can now pass "64" 
(i.e. "./parent64 64") to make it run the new child64 program.  When you 
do that, the output is completely sensible, unlike with the mixed 
bitness case:

     PARENT64: My PID is 8808; created child PID 3480.
     CHILD64:  My PID is 3480; my parent's PID is 8808.

Also, doesn't the fact that procps only shows processes running under 
the current Cygwin DLL indicate that the process table is DLL-specific?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: child32.cpp
Type: text/x-c++src
Size: 169 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-talk/attachments/20131202/da2e6211/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: child64.cpp
Type: text/x-c++src
Size: 169 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-talk/attachments/20131202/da2e6211/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: parent64.cpp
Type: text/x-c++src
Size: 584 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-talk/attachments/20131202/da2e6211/attachment-0002.bin>


More information about the Cygwin-talk mailing list