delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/10/23/08:29:40

X-Spam-Check-By: sourceware.org
Message-ID: <453CB5BF.7000803@byu.net>
Date: Mon, 23 Oct 2006 06:29:51 -0600
From: Eric Blake <ebb9 AT byu DOT net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.7) Gecko/20060909 Thunderbird/1.5.0.7 Mnenhy/0.7.4.666
MIME-Version: 1.0
To: cygwin AT cygwin DOT com, papasha_papovich AT mail DOT ru
Subject: Re: Strange fork/exec bug, two processes instead of one are created
References: <001701c6f681$3b2ee160$125110ac AT sheffpc>
In-Reply-To: <001701c6f681$3b2ee160$125110ac@sheffpc>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Papasha on 10/23/2006 2:57 AM:
> 
> I use it to launch a program compiled using MSVC++ 2005:
> 
> It starts, everything is ok, but in windows TaskMan I see something like
> this:
> spawner.exe
> spawner.exe
> testproj.exe

To be expected.  The only way that cygwin processes can get accurate
tracking of the exit code of non-cygwin processes is to invoke a stub
process that waits for the exit of the Windows process.  So one of those
two spawner.exe is the cygwin stub that is waiting for the other to exit
to keep cygwin state consistent.

> 
> I have 2 copies of spawner.exe running, It seemed to me so, but after I ran
> "ps -W" under cygwin I got:
> 
>     PID     PPID    PGID     WINPID  TTY  UID    STIME COMMAND
>     2576    2928    2576       3260  con 1003 12:06:07 .../spawner
>     2424    2576    2576       3472  con 1003 12:06:07 .../testproj
> 
>     3472       0       0       3472    ?    0 12:06:07
> C:\cygwin\...\testproj.exe (where did it come from ???)
> 
> It looks like second spawner.exe is not actually a spawner.exe, but another
> testproj.exe. Note that first testproj and second testproj have the same
> WINPID, but different PIDs and the PID of second testproj = WINPID of first
> testproj.

Also to be expected - a process can change its name after creation.  But
the stub process is a cygwin process, in fact, it is an image of the
process that forked; it just changes its name to the non-cygwin process
that it is tracking.

> 
> And ran:
> ./spawner.exe testproj_cyg.exe
> 
> And everything was ok, I had one copy of spawner.exe and one copy of
> testproj_cyg.exe

To be expected - cygwin processes can communicate with each other without
having to resort to stub processes.

- --
Life is short - so eat dessert first!

Eric Blake             ebb9 AT byu DOT net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFPLS884KuGfSFAYARAo/0AKDH370MD6r4eItsW3DTUAb2ribzxwCfVdKM
xMmeA17n36Q6jN+7wnkgtkg=
=omxs
-----END PGP SIGNATURE-----

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019