delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2015/05/28/08:00:34

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:in-reply-to
:references:mime-version:content-type; q=dns; s=default; b=GWJj2
9s395teEGdtJWg5EJuuAFI9YS7vSf7dECtj0ctRQV21w3JqV/ML7KkGlNM4aolSp
0aVL4bT6k/Q2Ywo3YbQg4ErBTHr60bghqTWmqDRoeRvW6069pzVK59dKdPBuMStC
wjBU3/c+uJ4o5VskA/AZ7pnxrOg5TiVoKFAN+E=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:in-reply-to
:references:mime-version:content-type; s=default; bh=clk4uKIALL3
Ody03c2QMmIOV/7M=; b=SufgNFr8E8Xdnjnp08dTSplsd0W1UD8HzqlXFaSwWsD
IT3dnTwmQYZqQvHVWHldQCCgAeGJFXSLH6RZIz6+pXtz/j7lVJiDgN/LSswLsvwW
OZPNvWDmaWXumEjUbbGvH2qS2S8uoAjLj0JxQWXLr5xvLC07M7eLRIPsqdIwrmJw
=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
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
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-0.2 required=5.0 tests=AWL,BAYES_50,RCVD_IN_SORBS_DUL,SPF_PASS autolearn=ham version=3.3.2
X-HELO: conuserg003-v.nifty.com
X-Nifty-SrcIP: [121.93.68.199]
Date: Thu, 28 May 2015 20:59:57 +0900
From: Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
To: cygwin AT cygwin DOT com
Subject: Re: cygwin-2 process handling
Message-Id: <20150528205957.c09d4be4c7c0430bd7f76de4@nifty.ne.jp>
In-Reply-To: <20150527151734.GM16927@calimero.vinschen.de>
References: <1573487218 DOT 1490468 DOT 1431969356192 DOT JavaMail DOT yahoo AT mail DOT yahoo DOT com> <555B6F71 DOT 4040906 AT cornell DOT edu> <555B7E03 DOT 40404 AT cornell DOT edu> <20150521205357 DOT 2c125b3bcaf877d0843b52b1 AT nifty DOT ne DOT jp> <20150527122312 DOT GF16927 AT calimero DOT vinschen DOT de> <20150527151734 DOT GM16927 AT calimero DOT vinschen DOT de>
Mime-Version: 1.0
X-IsSubscribed: yes

--Multipart=_Thu__28_May_2015_20_59_57_+0900_i208tWRXOz=s2YzT
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi Corinna,

On Wed, 27 May 2015 14:23:12 +0200
Corinna Vinschen wrote:

> Isn't that racy?  Consider two processes doing that at the same time.
> Both calls to NtQueryObject could come up with hdl_cnt == 2 and the
> problem persists.

Yes, indeed. I didn't consider enough.

> Wouldn't it be safer to call SetEvent(input_available_event) all the
> time from here?

On Wed, 27 May 2015 17:17:34 +0200
Corinna Vinschen <corinna-cygwin AT cygwin DOT com> wrote:

> We discussed this already in March and only briefly talked about a
> change like this requiring changes to fhandler_pty_slave::read.
> However, I don't see this.  The read code already takes 0 bytes input
> and broken pipe scenarios into account.  Do you see something needing
> a change I don't?

Just calling SetEvent(input_available_event) at all time in
fhandler_pty_master::close() causes immediate closure of the
shell on pty at the start.

Some modifications in fhandler_pty_slave::read() seems necessary.

I have made a patch attached, which modifies fhandler_pty_slave::
read() as well. I have not confirmed enough yet, but it seems to
work for me. Please have a look.

-- 
Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>

--Multipart=_Thu__28_May_2015_20_59_57_+0900_i208tWRXOz=s2YzT
Content-Type: application/octet-stream;
 name="cygwin.patch.20150528"
Content-Disposition: attachment;
 filename="cygwin.patch.20150528"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfdHR5LmNjIGIv
d2luc3VwL2N5Z3dpbi9maGFuZGxlcl90dHkuY2MKaW5kZXggZTkxYjNlMy4u
YjY2NzI3OCAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl90
dHkuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl90dHkuY2MKQEAg
LTc0Niw3ICs3NDYsMTggQEAgZmhhbmRsZXJfcHR5X3NsYXZlOjpyZWFkICh2
b2lkICpwdHIsIHNpemVfdCYgbGVuKQogCSAgZ290byBvdXQ7CiAJfQogICAg
ICAgaWYgKCFieXRlc19hdmFpbGFibGUgKGJ5dGVzX2luX3BpcGUpKQotCXJh
aXNlIChTSUdIVVApOworCXsKKwkgIHNldF9lcnJubyAoRUlPKTsKKwkgIHRv
dGFscmVhZCA9IC0xOworCSAgZ290byBvdXQ7CisJfQorCisgICAgICBpZiAo
Ynl0ZXNfaW5fcGlwZSA9PSAwICYmIGdldF90dHlwICgpLT5yZWFkX3JldHZh
bCA+IDApCisJeworCSAgUmVzZXRFdmVudCAoaW5wdXRfYXZhaWxhYmxlX2V2
ZW50KTsKKwkgIFJlbGVhc2VNdXRleCAoaW5wdXRfbXV0ZXgpOworCSAgY29u
dGludWU7CisJfQogCiAgICAgICAvKiBPbiBmaXJzdCBwZWVrIGRldGVybWlu
ZSBuby4gb2YgYnl0ZXMgdG8gZmx1c2guICovCiAgICAgICBpZiAoIXB0ciAm
JiBsZW4gPT0gVUlOVF9NQVgpCkBAIC03NzYsOSArNzg3LDkgQEAgZmhhbmRs
ZXJfcHR5X3NsYXZlOjpyZWFkICh2b2lkICpwdHIsIHNpemVfdCYgbGVuKQog
CSAgaWYgKCFSZWFkRmlsZSAoZ2V0X2hhbmRsZSAoKSwgYnVmLCByZWFkbGVu
LCAmbiwgTlVMTCkpCiAJICAgIHsKIAkgICAgICB0ZXJtaW9zX3ByaW50ZiAo
InJlYWQgZmFpbGVkLCAlRSIpOwotCSAgICAgIHJhaXNlIChTSUdIVVApOwot
CSAgICAgIGJ5dGVzX2luX3BpcGUgPSAwOwotCSAgICAgIHB0ciA9IE5VTEw7
CisJICAgICAgc2V0X2Vycm5vIChFSU8pOworCSAgICAgIHRvdGFscmVhZCA9
IC0xOworCSAgICAgIGdvdG8gb3V0OwogCSAgICB9CiAJICBlbHNlCiAJICAg
IHsKQEAgLTc4Nyw3ICs3OTgsMTEgQEAgZmhhbmRsZXJfcHR5X3NsYXZlOjpy
ZWFkICh2b2lkICpwdHIsIHNpemVfdCYgbGVuKQogCQkgY2hhbmdlIGFmdGVy
IHN1Y2Nlc3NmdWwgcmVhZC4gU28gd2UgaGF2ZSB0byBwZWVrIGludG8gdGhl
IHBpcGUKIAkJIGFnYWluIHRvIHNlZSBpZiBpbnB1dCBpcyBzdGlsbCBhdmFp
bGFibGUgKi8KIAkgICAgICBpZiAoIWJ5dGVzX2F2YWlsYWJsZSAoYnl0ZXNf
aW5fcGlwZSkpCi0JCXJhaXNlIChTSUdIVVApOworCQl7CisJCSAgc2V0X2Vy
cm5vIChFSU8pOworCQkgIHRvdGFscmVhZCA9IC0xOworCQkgIGdvdG8gb3V0
OworCQl9CiAJICAgICAgaWYgKG4pCiAJCXsKIAkJICBsZW4gLT0gbjsKQEAg
LTEzMDksMTQgKzEzMjQsNiBAQCBmaGFuZGxlcl9wdHlfbWFzdGVyOjpjbG9z
ZSAoKQogCX0KICAgICB9CiAKLSAgZmhhbmRsZXJfcHR5X2NvbW1vbjo6Y2xv
c2UgKCk7Ci0KLSAgLyogQ2hlY2sgaWYgdGhlIGxhc3QgbWFzdGVyIGhhbmRs
ZSBoYXMgYmVlbiBjbG9zZWQuICBJZiBzbywgc2V0Ci0gICAgIGlucHV0X2F2
YWlsYWJsZV9ldmVudCB0byB3YWtlIHVwIHBvdGVudGlhbGx5IHdhaXRpbmcg
c2xhdmVzLiAqLwotICBpZiAoIVBlZWtOYW1lZFBpcGUgKGZyb21fbWFzdGVy
LCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMKQotICAgICAgJiYgR2V0TGFz
dEVycm9yICgpID09IEVSUk9SX0JST0tFTl9QSVBFKSAKLSAgICBTZXRFdmVu
dCAoaW5wdXRfYXZhaWxhYmxlX2V2ZW50KTsKLQogICBpZiAoIUZvcmNlQ2xv
c2VIYW5kbGUgKGZyb21fbWFzdGVyKSkKICAgICB0ZXJtaW9zX3ByaW50ZiAo
ImVycm9yIGNsb3NpbmcgZnJvbV9tYXN0ZXIgJXAsICVFIiwgZnJvbV9tYXN0
ZXIpOwogICBpZiAoIUZvcmNlQ2xvc2VIYW5kbGUgKHRvX21hc3RlcikpCkBA
IC0xMzMxLDggKzEzMzgsMTUgQEAgZmhhbmRsZXJfcHR5X21hc3Rlcjo6Y2xv
c2UgKCkKICAgRm9yY2VDbG9zZUhhbmRsZSAoZWNob193KTsKICAgZWNob19y
ID0gZWNob193ID0gTlVMTDsKIAorICBmaGFuZGxlcl9wdHlfY29tbW9uOjpj
bG9zZSAoKTsKKwogICBpZiAoaGF2ZV9leGVjZWQgfHwgZ2V0X3R0eXAgKCkt
Pm1hc3Rlcl9waWQgIT0gbXlzZWxmLT5waWQpCiAgICAgdGVybWlvc19wcmlu
dGYgKCJub3QgY2xlYXJpbmc6ICVkLCBtYXN0ZXJfcGlkICVkIiwgaGF2ZV9l
eGVjZWQsIGdldF90dHlwICgpLT5tYXN0ZXJfcGlkKTsKKworICBXYWl0Rm9y
U2luZ2xlT2JqZWN0IChpbnB1dF9tdXRleCwgSU5GSU5JVEUpOworICBTZXRF
dmVudCAoaW5wdXRfYXZhaWxhYmxlX2V2ZW50KTsKKyAgUmVsZWFzZU11dGV4
IChpbnB1dF9tdXRleCk7CisKICAgaWYgKCFGb3JjZUNsb3NlSGFuZGxlIChp
bnB1dF9hdmFpbGFibGVfZXZlbnQpKQogICAgIHRlcm1pb3NfcHJpbnRmICgi
Q2xvc2VIYW5kbGUgKGlucHV0X2F2YWlsYWJsZV9ldmVudDwlcD4pLCAlRSIs
IGlucHV0X2F2YWlsYWJsZV9ldmVudCk7CiAKZGlmZiAtLWdpdCBhL3dpbnN1
cC9jeWd3aW4vdHR5LmNjIGIvd2luc3VwL2N5Z3dpbi90dHkuY2MKaW5kZXgg
M2YxMDc3ZC4uZjg5NDQ0OSAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi90
dHkuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi90dHkuY2MKQEAgLTIzOCw2ICsy
MzgsNyBAQCB0dHk6OmluaXQgKCkKICAgbWFzdGVyX3BpZCA9IDA7CiAgIGlz
X2NvbnNvbGUgPSBmYWxzZTsKICAgY29sdW1uID0gMDsKKyAgcmVhZF9yZXR2
YWwgPSAxOwogfQogCiBIQU5ETEUK


--Multipart=_Thu__28_May_2015_20_59_57_+0900_i208tWRXOz=s2YzT
Content-Type: text/plain; charset=us-ascii

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
--Multipart=_Thu__28_May_2015_20_59_57_+0900_i208tWRXOz=s2YzT--

- Raw text -


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