From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 70382 invoked by alias); 28 May 2015 12:00:17 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 70282 invoked by uid 89); 28 May 2015 12:00:11 -0000 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 Received: from conuserg003.nifty.com (HELO conuserg003-v.nifty.com) (202.248.45.244) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (DES-CBC3-SHA encrypted) ESMTPS; Thu, 28 May 2015 12:00:10 +0000 Received: from Express5800-S70 (ntsitm305199.sitm.nt.ftth.ppp.infoweb.ne.jp [121.93.68.199]) (authenticated) by conuserg003-v.nifty.com with ESMTP id t4SBxtx4020417 for ; Thu, 28 May 2015 20:59:55 +0900 X-Nifty-SrcIP: [121.93.68.199] Date: Thu, 28 May 2015 12:09:00 -0000 From: Takashi Yano To: cygwin@cygwin.com Subject: Re: cygwin-2 process handling Message-Id: <20150528205957.c09d4be4c7c0430bd7f76de4@nifty.ne.jp> In-Reply-To: <20150527151734.GM16927@calimero.vinschen.de> References: <1573487218.1490468.1431969356192.JavaMail.yahoo@mail.yahoo.com> <555B6F71.4040906@cornell.edu> <555B7E03.40404@cornell.edu> <20150521205357.2c125b3bcaf877d0843b52b1@nifty.ne.jp> <20150527122312.GF16927@calimero.vinschen.de> <20150527151734.GM16927@calimero.vinschen.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Thu__28_May_2015_20_59_57_+0900_i208tWRXOz=s2YzT" X-IsSubscribed: yes X-SW-Source: 2015-05/txt/msg00383.txt.bz2 --Multipart=_Thu__28_May_2015_20_59_57_+0900_i208tWRXOz=s2YzT Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 1179 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 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 --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 Content-length: 3689 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 Content-length: 218 -- 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--