From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from conssluserg-03.nifty.com (conssluserg-03.nifty.com [210.131.2.82]) by sourceware.org (Postfix) with ESMTPS id 8468F385843C for ; Thu, 16 Sep 2021 14:28:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8468F385843C Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=nifty.ne.jp Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=nifty.ne.jp Received: from Express5800-S70 (z221123.dynamic.ppp.asahi-net.or.jp [110.4.221.123]) (authenticated) by conssluserg-03.nifty.com with ESMTP id 18GERtAB013483 for ; Thu, 16 Sep 2021 23:27:55 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-03.nifty.com 18GERtAB013483 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.ne.jp; s=dec2015msa; t=1631802475; bh=IPu8iNIOs2eTdkiGzVTrwe4u02X7B9/MHjWxncAq/sA=; h=Date:From:To:Subject:In-Reply-To:References:From; b=2WmncSattc5vKN/1lni4viZZkKkORJ18NxZcNDYrNKKf3HKyJ1iiYB9Qe9v+UfASq 2IKWZgu3IsHkCXksVMP1d3SIlKLf+eAahnhVVx/bajBvADRth3cVfOqptG+Mt4O3Ey 5bKU6fdkz/Hm2PO5mSlaFwZZxkRSYrzhtUXWq46jR46TMa+xbrHjLIFvHQXx6n4AR9 xgJUIDSLJ5juk75ZHHofpIR6NWY4y/WO8Y9HROZCwVG2iSguDb91IYwjVA2o1Zo/aI xQ42y1pcd6DD48AVIkmI9DrxHynvcDuz6Nv1DsikYCKh2aAPnVfy9deX5TkxFQZYi2 xV23xEOBXLSLQ== X-Nifty-SrcIP: [110.4.221.123] Date: Thu, 16 Sep 2021 23:27:56 +0900 From: Takashi Yano To: cygwin-developers@cygwin.com Subject: Re: cygrunsrv + sshd + rsync = 20 times too slow -- throttled? Message-Id: <20210916232756.fe8c744401b6cf703b1fe993@nifty.ne.jp> In-Reply-To: References: <20210915194858.845bcd54c0c63246b40703a8@nifty.ne.jp> <20210915205433.014102a9c1204687135e1417@nifty.ne.jp> <20210915220450.a96397d8b8159d9adfbdab07@nifty.ne.jp> <3ca95472-9fb2-3e62-3e28-1bd2f85bc018@cornell.edu> <99e3ac84-bee1-4abd-de9a-4ea2e7b62b61@cornell.edu> <20210916180905.5f857dad0568be96ac36cba5@nifty.ne.jp> <20210916220201.63924a67f337ea876954d7c0@nifty.ne.jp> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Thu__16_Sep_2021_23_27_56_+0900_TGWWgMdM1/KFxxXJ" X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: cygwin-developers@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component developers mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Sep 2021 14:28:20 -0000 This is a multi-part message in MIME format. --Multipart=_Thu__16_Sep_2021_23_27_56_+0900_TGWWgMdM1/KFxxXJ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi Corinna, Thanks for reviewing the patches. On Thu, 16 Sep 2021 15:25:46 +0200 Corinna Vinschen wrote: > > diff --git a/winsup/cygwin/fhandler_pipe.cc b/winsup/cygwin/fhandler_pipe.cc > > index fd2ab87af..7eedc010c 100644 > > --- a/winsup/cygwin/fhandler_pipe.cc > > +++ b/winsup/cygwin/fhandler_pipe.cc > > @@ -200,7 +200,14 @@ fhandler_pipe::open_setup (int flags) > > SECURITY_ATTRIBUTES *sa = sec_none_cloexec (flags); > > read_mtx = CreateMutex (sa, FALSE, NULL); > > if (!read_mtx) > > - debug_printf ("CreateMutex failed: %E"); > > + debug_printf ("CreateMutex read_mtx failed: %E"); > > + } > > + if (!hdl_cnt_mtx) > > + { > > + SECURITY_ATTRIBUTES *sa = sec_none_cloexec (flags); > > + hdl_cnt_mtx = CreateMutex (sa, FALSE, NULL); > > + if (!hdl_cnt_mtx) > > + debug_printf ("CreateMutex hdl_cnt_mtx failed: %E"); > > } > > if (get_dev () == FH_PIPEW && !query_hdl) > > set_pipe_non_blocking (is_nonblocking ()); > > @@ -390,8 +397,10 @@ fhandler_pipe_fifo::reader_closed () > > { > > if (!query_hdl) > > return false; > > + cygwait (hdl_cnt_mtx); > > This is missing an `if (hdl_cnt_mtx)' check. Done. > Also, given you're using hdl_cnt_mtx only for short-lived blocking, > you may want to reduce the overhead and just call WFSO with INFINITE > timeout. > > > int n_reader = get_obj_handle_count (query_hdl); > > int n_writer = get_obj_handle_count (get_handle ()); > > + ReleaseMutex (hdl_cnt_mtx); > > return n_reader == n_writer; > > } > > > > int > > @@ -576,6 +594,7 @@ fhandler_pipe::dup (fhandler_base *child, int flags) > > ftp->set_popen_pid (0); > > > > int res = 0; > > + cygwait (hdl_cnt_mtx); > > Same here and all the other cygwait(hdl_cnt_mtx) calls. Done. > It would be great if open_setup() would be converted to a method which > is allowed to fail, rather than ignoring errors in sync object creation > and having to test the handle throughout the code. Given there's only a > single caller of that function (dtable::init_std_file_from_handle), that > shouldn't be much work. But it's certainly better than ignoring creation > failures in the long run. I do not have confidence to do this correctly in a short time. Leave it as a homework. Or may I leave it to you? > > + fhs[0]->hdl_cnt_mtx = CreateMutexW (sa, FALSE, NULL); > > + if (!fhs[0]->hdl_cnt_mtx) > > + { > > + CloseHandle (fhs[0]->read_mtx); > > + CloseHandle (fhs[0]->select_sem); > > + delete fhs[0]; > > + NtClose (r); > > + CloseHandle (fhs[1]->select_sem); > > + CloseHandle (fhs[1]->query_hdl); > > + delete fhs[1]; > > + NtClose (w); > > + goto out; > > + } > > + if (!DuplicateHandle (GetCurrentProcess (), fhs[0]->hdl_cnt_mtx, > > + GetCurrentProcess (), &fhs[1]->hdl_cnt_mtx, > > + 0, sa->bInheritHandle, DUPLICATE_SAME_ACCESS)) > > + { > > + CloseHandle (fhs[0]->read_mtx); > > + CloseHandle (fhs[0]->select_sem); > > + CloseHandle (fhs[0]->hdl_cnt_mtx); > > + delete fhs[0]; > > + NtClose (r); > > + CloseHandle (fhs[1]->select_sem); > > + CloseHandle (fhs[1]->query_hdl); > > + delete fhs[1]; > > + NtClose (w); > > + goto out; > > + } > > + > > res = 0; > > } > > What about converting this to a goto error chain as in > fhandler_pty_slave::setup_pseudoconsole? This makes error handling > much cleaner, IMHO. Done. I have attached the patches revised. -- Takashi Yano --Multipart=_Thu__16_Sep_2021_23_27_56_+0900_TGWWgMdM1/KFxxXJ Content-Type: application/octet-stream; name="v2-0001-Cygwin-close_all_files-Do-not-duplicate-stderr-fo.patch" Content-Disposition: attachment; filename="v2-0001-Cygwin-close_all_files-Do-not-duplicate-stderr-fo.patch" Content-Transfer-Encoding: base64 RnJvbSA0YmJkMDNkYzdkNDgyOTY2Y2E1YWNlMmUxMzA0MjRhOGJhMmNiZjlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q cD4KRGF0ZTogVGh1LCAxNiBTZXAgMjAyMSAyMDo1MDo1NCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djIgMS8zXSBDeWd3aW46IGNsb3NlX2FsbF9maWxlczogRG8gbm90IGR1cGxpY2F0ZSBzdGRlcnIg Zm9yCiB3cml0ZSBwaXBlLgoKLSBDdXJyZW50bHksIHRoZSBzdGRlcnIgaGFuZGxlIGlzIGR1cGxp Y2F0ZWQgaW4gY2xvc2VfYWxsX2ZpbGVzKCkuCiAgVGhpcyBpbnRlcmZlcmVzIHRoZSBoYW5kbGUg Y291bnRpbmcgZm9yIGRldGVjdGluZyBjbG9zdXJlIG9mIHJlYWQKICBwaXBlLCB3aGljaCBpcyBp bnRyb2R1Y2VkIGJ5IGNvbW1pdCBmNzlhNDYxMS4gVGhpcyBwYXRjaCBzdG9wcwogIGR1cGxpY2F0 aW5nIHN0ZGVyciBoYW5kbGUgaWYgaXQgaXMgd3JpdGUgcGlwZS4KLS0tCiB3aW5zdXAvY3lnd2lu L3N5c2NhbGxzLmNjIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9zeXNjYWxscy5jYyBiL3dpbnN1 cC9jeWd3aW4vc3lzY2FsbHMuY2MKaW5kZXggMTFhZjA3OWNiLi5hM2ZmZTM1MzIgMTAwNjQ0Ci0t LSBhL3dpbnN1cC9jeWd3aW4vc3lzY2FsbHMuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9zeXNjYWxs cy5jYwpAQCAtOTUsNyArOTUsNyBAQCBjbG9zZV9hbGxfZmlsZXMgKGJvb2wgbm9yZWxlYXNlKQog ICAgICAgaWYgKGNmZCA+PSAwKQogCXsKIAkgIGRlYnVnX29ubHlfcHJpbnRmICgiY2xvc2luZyBm ZCAlZCIsIGkpOwotCSAgaWYgKGkgPT0gMikKKwkgIGlmIChpID09IDIgJiYgY2ZkLT5nZXRfZGV2 ICgpICE9IEZIX1BJUEVXKQogCSAgICBEdXBsaWNhdGVIYW5kbGUgKEdldEN1cnJlbnRQcm9jZXNz ICgpLCBjZmQtPmdldF9vdXRwdXRfaGFuZGxlICgpLAogCQkJICAgICBHZXRDdXJyZW50UHJvY2Vz cyAoKSwgJmgsCiAJCQkgICAgIDAsIGZhbHNlLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpOwotLSAK Mi4zMy4wCgo= --Multipart=_Thu__16_Sep_2021_23_27_56_+0900_TGWWgMdM1/KFxxXJ Content-Type: application/octet-stream; name="v2-0002-Cygwin-pipe-Fix-error-handling-in-fhandler_pip-cr.patch" Content-Disposition: attachment; filename="v2-0002-Cygwin-pipe-Fix-error-handling-in-fhandler_pip-cr.patch" Content-Transfer-Encoding: base64 RnJvbSA0Yjc4NGQ3MmVjZmZlNTI5M2YxMGJhZWUzMTRmZjg5MmQ1ZGRjNTliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q cD4KRGF0ZTogVGh1LCAxNiBTZXAgMjAyMSAyMzoxNToxNyArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djIgMi8zXSBDeWd3aW46IHBpcGU6IEZpeCBlcnJvciBoYW5kbGluZyBpbgogZmhhbmRsZXJfcGlw OjpjcmVhdGUoKS4KCi0gQ3VycmVudGx5LCBlcnJvciBoYW5kbGluZyBpbiBmaGFuZGxlcl9waXBl OjpjcmVhdGUoKSBpcyBicm9rZW4uCiAgVGhpcyBwYXRjaCBmaXhlcyB0aGF0LgotLS0KIHdpbnN1 cC9jeWd3aW4vZmhhbmRsZXIuaCAgICAgICB8ICAgMSAtCiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVy X3BpcGUuY2MgfCAxMDEgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIuaCBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIuaAppbmRl eCA5MTk2NTUwMTIuLmViMzEyY2NiNiAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxl ci5oCisrKyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIuaApAQCAtMTIwNiw3ICsxMjA2LDYgQEAg cHVibGljOgogICBmaGFuZGxlcl9waXBlICgpOwogCiAgIGJvb2wgaXNwaXBlKCkgY29uc3QgeyBy ZXR1cm4gdHJ1ZTsgfQotICB2b2lkIHNldF9yZWFkX211dGV4IChIQU5ETEUgbXR4KSB7IHJlYWRf bXR4ID0gbXR4OyB9CiAgIHZvaWQgc2V0X3BpcGVfYnVmX3NpemUgKCk7CiAKICAgdm9pZCBzZXRf cG9wZW5fcGlkIChwaWRfdCBwaWQpIHtwb3Blbl9waWQgPSBwaWQ7fQpkaWZmIC0tZ2l0IGEvd2lu c3VwL2N5Z3dpbi9maGFuZGxlcl9waXBlLmNjIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9waXBl LmNjCmluZGV4IGMyZjQzNTNmNi4uNTgyYjRkNTY0IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2lu L2ZoYW5kbGVyX3BpcGUuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9waXBlLmNjCkBA IC04MDMsNjEgKzgwMyw1NiBAQCBmaGFuZGxlcl9waXBlOjpjcmVhdGUgKGZoYW5kbGVyX3BpcGUg KmZoc1syXSwgdW5zaWduZWQgcHNpemUsIGludCBtb2RlKQogCiAgIGludCByZXQgPSBudF9jcmVh dGUgKHNhLCByLCB3LCBwc2l6ZSwgJnVuaXF1ZV9pZCk7CiAgIGlmIChyZXQpCi0gICAgX19zZXRl cnJub19mcm9tX3dpbl9lcnJvciAocmV0KTsKLSAgZWxzZSBpZiAoKGZoc1swXSA9IChmaGFuZGxl cl9waXBlICopIGJ1aWxkX2ZoX2RldiAoKnBpcGVyX2RldikpID09IE5VTEwpCiAgICAgewotICAg ICAgTnRDbG9zZSAocik7Ci0gICAgICBOdENsb3NlICh3KTsKLSAgICB9Ci0gIGVsc2UgaWYgKChm aHNbMV0gPSAoZmhhbmRsZXJfcGlwZSAqKSBidWlsZF9maF9kZXYgKCpwaXBld19kZXYpKSA9PSBO VUxMKQotICAgIHsKLSAgICAgIGRlbGV0ZSBmaHNbMF07Ci0gICAgICBOdENsb3NlIChyKTsKLSAg ICAgIE50Q2xvc2UgKHcpOwotICAgIH0KLSAgZWxzZQotICAgIHsKLSAgICAgIG1vZGUgfD0gbW9k ZSAmIE9fVEVYVCA/OiBPX0JJTkFSWTsKLSAgICAgIGZoc1swXS0+aW5pdCAociwgRklMRV9DUkVB VEVfUElQRV9JTlNUQU5DRSB8IEdFTkVSSUNfUkVBRCwgbW9kZSwKLQkJICAgIHVuaXF1ZV9pZCk7 Ci0gICAgICBmaHNbMV0tPmluaXQgKHcsIEZJTEVfQ1JFQVRFX1BJUEVfSU5TVEFOQ0UgfCBHRU5F UklDX1dSSVRFLCBtb2RlLAotCQkgICAgdW5pcXVlX2lkKTsKLSAgICAgIC8qIEZvciB0aGUgcmVh ZCBzaWRlIG9mIHRoZSBwaXBlLCBhZGQgYSBtdXRleC4gIFNlZSByYXdfcmVhZCBmb3IgdGhlCi0J IHVzYWdlLiAqLwotICAgICAgSEFORExFIG10eCA9IENyZWF0ZU11dGV4VyAoc2EsIEZBTFNFLCBO VUxMKTsKLSAgICAgIGlmICghbXR4KQotCXsKLQkgIGRlbGV0ZSBmaHNbMF07Ci0JICBOdENsb3Nl IChyKTsKLQkgIGRlbGV0ZSBmaHNbMV07Ci0JICBOdENsb3NlICh3KTsKLQl9Ci0gICAgICBlbHNl Ci0JewotCSAgZmhzWzBdLT5zZXRfcmVhZF9tdXRleCAobXR4KTsKLQkgIHJlcyA9IDA7Ci0JfQot ICAgICAgZmhzWzBdLT5zZWxlY3Rfc2VtID0gQ3JlYXRlU2VtYXBob3JlIChzYSwgMCwgSU5UMzJf TUFYLCBOVUxMKTsKLSAgICAgIGlmIChmaHNbMF0tPnNlbGVjdF9zZW0pCi0JRHVwbGljYXRlSGFu ZGxlIChHZXRDdXJyZW50UHJvY2VzcyAoKSwgZmhzWzBdLT5zZWxlY3Rfc2VtLAotCQkJIEdldEN1 cnJlbnRQcm9jZXNzICgpLCAmZmhzWzFdLT5zZWxlY3Rfc2VtLAotCQkJIDAsIHNhLT5iSW5oZXJp dEhhbmRsZSwgRFVQTElDQVRFX1NBTUVfQUNDRVNTKTsKLSAgICAgIGlmICghRHVwbGljYXRlSGFu ZGxlIChHZXRDdXJyZW50UHJvY2VzcyAoKSwgciwKLQkJCSAgICBHZXRDdXJyZW50UHJvY2VzcyAo KSwgJmZoc1sxXS0+cXVlcnlfaGRsLAotCQkJICAgIEZJTEVfUkVBRF9EQVRBLCBzYS0+YkluaGVy aXRIYW5kbGUsIDApKQotCXsKLQkgIENsb3NlSGFuZGxlIChmaHNbMF0tPnNlbGVjdF9zZW0pOwot CSAgZGVsZXRlIGZoc1swXTsKLQkgIENsb3NlSGFuZGxlIChyKTsKLQkgIENsb3NlSGFuZGxlIChm aHNbMV0tPnNlbGVjdF9zZW0pOwotCSAgZGVsZXRlIGZoc1sxXTsKLQkgIENsb3NlSGFuZGxlICh3 KTsKLQl9Ci0gICAgICBlbHNlCi0JcmVzID0gMDsKKyAgICAgIF9fc2V0ZXJybm9fZnJvbV93aW5f ZXJyb3IgKHJldCk7CisgICAgICBnb3RvIG91dDsKICAgICB9Ci0KLSAgZGVidWdfcHJpbnRmICgi JVIgPSBwaXBlKFslcCwgJXBdLCAlZCwgJXkpIiwgcmVzLCBmaHNbMF0sIGZoc1sxXSwgcHNpemUs IG1vZGUpOworICBpZiAoKGZoc1swXSA9IChmaGFuZGxlcl9waXBlICopIGJ1aWxkX2ZoX2RldiAo KnBpcGVyX2RldikpID09IE5VTEwpCisgICAgZ290byBlcnJfY2xvc2VfcndfaGFuZGxlOworICBp ZiAoKGZoc1sxXSA9IChmaGFuZGxlcl9waXBlICopIGJ1aWxkX2ZoX2RldiAoKnBpcGV3X2Rldikp ID09IE5VTEwpCisgICAgZ290byBlcnJfZGVsZXRlX2ZoczA7CisgIG1vZGUgfD0gbW9kZSAmIE9f VEVYVCA/OiBPX0JJTkFSWTsKKyAgZmhzWzBdLT5pbml0IChyLCBGSUxFX0NSRUFURV9QSVBFX0lO U1RBTkNFIHwgR0VORVJJQ19SRUFELCBtb2RlLCB1bmlxdWVfaWQpOworICBmaHNbMV0tPmluaXQg KHcsIEZJTEVfQ1JFQVRFX1BJUEVfSU5TVEFOQ0UgfCBHRU5FUklDX1dSSVRFLCBtb2RlLCB1bmlx dWVfaWQpOworCisgIC8qIEZvciB0aGUgcmVhZCBzaWRlIG9mIHRoZSBwaXBlLCBhZGQgYSBtdXRl eC4gIFNlZSByYXdfcmVhZCBmb3IgdGhlCisgICAgIHVzYWdlLiAqLworICBmaHNbMF0tPnJlYWRf bXR4ID0gQ3JlYXRlTXV0ZXhXIChzYSwgRkFMU0UsIE5VTEwpOworICBpZiAoIWZoc1swXS0+cmVh ZF9tdHgpCisgICAgZ290byBlcnJfZGVsZXRlX2ZoczE7CisKKyAgZmhzWzBdLT5zZWxlY3Rfc2Vt ID0gQ3JlYXRlU2VtYXBob3JlIChzYSwgMCwgSU5UMzJfTUFYLCBOVUxMKTsKKyAgaWYgKCFmaHNb MF0tPnNlbGVjdF9zZW0pCisgICAgZ290byBlcnJfY2xvc2VfcmVhZF9tdHg7CisgIGlmICghRHVw bGljYXRlSGFuZGxlIChHZXRDdXJyZW50UHJvY2VzcyAoKSwgZmhzWzBdLT5zZWxlY3Rfc2VtLAor CQkJR2V0Q3VycmVudFByb2Nlc3MgKCksICZmaHNbMV0tPnNlbGVjdF9zZW0sCisJCQkwLCBzYS0+ YkluaGVyaXRIYW5kbGUsIERVUExJQ0FURV9TQU1FX0FDQ0VTUykpCisgICAgZ290byBlcnJfY2xv c2Vfc2VsZWN0X3NlbTA7CisKKyAgaWYgKCFEdXBsaWNhdGVIYW5kbGUgKEdldEN1cnJlbnRQcm9j ZXNzICgpLCByLAorCQkJR2V0Q3VycmVudFByb2Nlc3MgKCksICZmaHNbMV0tPnF1ZXJ5X2hkbCwK KwkJCUZJTEVfUkVBRF9EQVRBLCBzYS0+YkluaGVyaXRIYW5kbGUsIDApKQorICAgIGdvdG8gZXJy X2Nsb3NlX3NlbGVjdF9zZW0xOworCisgIHJlcyA9IDA7CisgIGdvdG8gb3V0OworCitlcnJfY2xv c2Vfc2VsZWN0X3NlbTE6CisgIENsb3NlSGFuZGxlIChmaHNbMV0tPnNlbGVjdF9zZW0pOworZXJy X2Nsb3NlX3NlbGVjdF9zZW0wOgorICBDbG9zZUhhbmRsZSAoZmhzWzBdLT5zZWxlY3Rfc2VtKTsK K2Vycl9jbG9zZV9yZWFkX210eDoKKyAgQ2xvc2VIYW5kbGUgKGZoc1swXS0+cmVhZF9tdHgpOwor ZXJyX2RlbGV0ZV9maHMxOgorICBkZWxldGUgZmhzWzFdOworZXJyX2RlbGV0ZV9maHMwOgorICBk ZWxldGUgZmhzWzBdOworZXJyX2Nsb3NlX3J3X2hhbmRsZToKKyAgTnRDbG9zZSAocik7CisgIE50 Q2xvc2UgKHcpOworb3V0OgorICBkZWJ1Z19wcmludGYgKCIlUiA9IHBpcGUoWyVwLCAlcF0sICVk LCAleSkiLAorCQlyZXMsIGZoc1swXSwgZmhzWzFdLCBwc2l6ZSwgbW9kZSk7CiAgIHJldHVybiBy ZXM7CiB9CiAKLS0gCjIuMzMuMAoK --Multipart=_Thu__16_Sep_2021_23_27_56_+0900_TGWWgMdM1/KFxxXJ Content-Type: application/octet-stream; name="v2-0003-Cygwin-pipe-Fix-race-issue-regarding-handle-count.patch" Content-Disposition: attachment; filename="v2-0003-Cygwin-pipe-Fix-race-issue-regarding-handle-count.patch" Content-Transfer-Encoding: base64 RnJvbSBiYzFhMmQ2NWNiMzZiODM5YzVlOTI0NmY2NTg2NWFiZDYyY2IyNTg3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q cD4KRGF0ZTogVGh1LCAxNiBTZXAgMjAyMSAyMzoyMTo1NyArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djIgMy8zXSBDeWd3aW46IHBpcGU6IEZpeCByYWNlIGlzc3VlIHJlZ2FyZGluZyBoYW5kbGUgY291 bnQuCgotIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHJhY2UgaXNzdWUgaW4gdGhlIGhhbmRsZSBjb3Vu dGluZyB0byBkZXRlY3QKICBjbG9zdXJlIG9mIHJlYWQgcGlwZSwgd2hpY2ggaXMgaW50cm9kdWNl ZCBieSBjb21taXQgZjc5YTQ2MTEuCiAgQSBtdXRleCBoZGxfY250X210eCBpcyBpbnRyb2R1Y2Vk IGZvciB0aGlzIGlzc3VlLgotLS0KIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXIuaCAgICAgICB8ICAx ICsKIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcGlwZS5jYyB8IDY1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgNiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyLmggYi93aW5z dXAvY3lnd2luL2ZoYW5kbGVyLmgKaW5kZXggZWIzMTJjY2I2Li4zMWVkYjE4MjIgMTAwNjQ0Ci0t LSBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIuaAorKysgYi93aW5zdXAvY3lnd2luL2ZoYW5kbGVy LmgKQEAgLTExNzYsNiArMTE3Niw3IEBAIGNsYXNzIGZoYW5kbGVyX3BpcGVfZmlmbzogcHVibGlj IGZoYW5kbGVyX2Jhc2UKICBwcm90ZWN0ZWQ6CiAgIHNpemVfdCBwaXBlX2J1Zl9zaXplOwogICBI QU5ETEUgcXVlcnlfaGRsOworICBIQU5ETEUgaGRsX2NudF9tdHg7CiAgIHZpcnR1YWwgdm9pZCBy ZWxlYXNlX3NlbGVjdF9zZW0gKGNvbnN0IGNoYXIgKikge307CiAKICBwdWJsaWM6CmRpZmYgLS1n aXQgYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUuY2MgYi93aW5zdXAvY3lnd2luL2ZoYW5k bGVyX3BpcGUuY2MKaW5kZXggNTgyYjRkNTY0Li4yMDY4YTk0M2UgMTAwNjQ0Ci0tLSBhL3dpbnN1 cC9jeWd3aW4vZmhhbmRsZXJfcGlwZS5jYworKysgYi93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3Bp cGUuY2MKQEAgLTIwMCw3ICsyMDAsMTQgQEAgZmhhbmRsZXJfcGlwZTo6b3Blbl9zZXR1cCAoaW50 IGZsYWdzKQogICAgICAgU0VDVVJJVFlfQVRUUklCVVRFUyAqc2EgPSBzZWNfbm9uZV9jbG9leGVj IChmbGFncyk7CiAgICAgICByZWFkX210eCA9IENyZWF0ZU11dGV4IChzYSwgRkFMU0UsIE5VTEwp OwogICAgICAgaWYgKCFyZWFkX210eCkKLQlkZWJ1Z19wcmludGYgKCJDcmVhdGVNdXRleCBmYWls ZWQ6ICVFIik7CisJZGVidWdfcHJpbnRmICgiQ3JlYXRlTXV0ZXggcmVhZF9tdHggZmFpbGVkOiAl RSIpOworICAgIH0KKyAgaWYgKCFoZGxfY250X210eCkKKyAgICB7CisgICAgICBTRUNVUklUWV9B VFRSSUJVVEVTICpzYSA9IHNlY19ub25lX2Nsb2V4ZWMgKGZsYWdzKTsKKyAgICAgIGhkbF9jbnRf bXR4ID0gQ3JlYXRlTXV0ZXggKHNhLCBGQUxTRSwgTlVMTCk7CisgICAgICBpZiAoIWhkbF9jbnRf bXR4KQorCWRlYnVnX3ByaW50ZiAoIkNyZWF0ZU11dGV4IGhkbF9jbnRfbXR4IGZhaWxlZDogJUUi KTsKICAgICB9CiAgIGlmIChnZXRfZGV2ICgpID09IEZIX1BJUEVXICYmICFxdWVyeV9oZGwpCiAg ICAgc2V0X3BpcGVfbm9uX2Jsb2NraW5nIChpc19ub25ibG9ja2luZyAoKSk7CkBAIC0zOTAsOCAr Mzk3LDEyIEBAIGZoYW5kbGVyX3BpcGVfZmlmbzo6cmVhZGVyX2Nsb3NlZCAoKQogewogICBpZiAo IXF1ZXJ5X2hkbCkKICAgICByZXR1cm4gZmFsc2U7CisgIGlmIChoZGxfY250X210eCkKKyAgICBX YWl0Rm9yU2luZ2xlT2JqZWN0IChoZGxfY250X210eCwgSU5GSU5JVEUpOwogICBpbnQgbl9yZWFk ZXIgPSBnZXRfb2JqX2hhbmRsZV9jb3VudCAocXVlcnlfaGRsKTsKICAgaW50IG5fd3JpdGVyID0g Z2V0X29ial9oYW5kbGVfY291bnQgKGdldF9oYW5kbGUgKCkpOworICBpZiAoaGRsX2NudF9tdHgp CisgICAgUmVsZWFzZU11dGV4IChoZGxfY250X210eCk7CiAgIHJldHVybiBuX3JlYWRlciA9PSBu X3dyaXRlcjsKIH0KIApAQCAtNTU0LDExICs1NjUsMTggQEAgZmhhbmRsZXJfcGlwZTo6c2V0X2Ns b3NlX29uX2V4ZWMgKGJvb2wgdmFsKQogICAgIHNldF9ub19pbmhlcml0YW5jZSAoc2VsZWN0X3Nl bSwgdmFsKTsKICAgaWYgKHF1ZXJ5X2hkbCkKICAgICBzZXRfbm9faW5oZXJpdGFuY2UgKHF1ZXJ5 X2hkbCwgdmFsKTsKKyAgaWYgKGhkbF9jbnRfbXR4KQorICAgIHNldF9ub19pbmhlcml0YW5jZSAo aGRsX2NudF9tdHgsIHZhbCk7CiB9CiAKIHZvaWQKIGZoYW5kbGVyX3BpcGU6OmZpeHVwX2FmdGVy X2ZvcmsgKEhBTkRMRSBwYXJlbnQpCiB7CisgIGlmIChoZGxfY250X210eCkKKyAgICB7CisgICAg ICBmb3JrX2ZpeHVwIChwYXJlbnQsIGhkbF9jbnRfbXR4LCAiaGRsX2NudF9tdHgiKTsKKyAgICAg IFdhaXRGb3JTaW5nbGVPYmplY3QgKGhkbF9jbnRfbXR4LCBJTkZJTklURSk7CisgICAgfQogICBp ZiAocmVhZF9tdHgpCiAgICAgZm9ya19maXh1cCAocGFyZW50LCByZWFkX210eCwgInJlYWRfbXR4 Iik7CiAgIGlmIChzZWxlY3Rfc2VtKQpAQCAtNTY3LDYgKzU4NSw4IEBAIGZoYW5kbGVyX3BpcGU6 OmZpeHVwX2FmdGVyX2ZvcmsgKEhBTkRMRSBwYXJlbnQpCiAgICAgZm9ya19maXh1cCAocGFyZW50 LCBxdWVyeV9oZGwsICJxdWVyeV9oZGwiKTsKIAogICBmaGFuZGxlcl9iYXNlOjpmaXh1cF9hZnRl cl9mb3JrIChwYXJlbnQpOworICBpZiAoaGRsX2NudF9tdHgpCisgICAgUmVsZWFzZU11dGV4ICho ZGxfY250X210eCk7CiB9CiAKIGludApAQCAtNTc2LDYgKzU5Niw4IEBAIGZoYW5kbGVyX3BpcGU6 OmR1cCAoZmhhbmRsZXJfYmFzZSAqY2hpbGQsIGludCBmbGFncykKICAgZnRwLT5zZXRfcG9wZW5f cGlkICgwKTsKIAogICBpbnQgcmVzID0gMDsKKyAgaWYgKGhkbF9jbnRfbXR4KQorICAgIFdhaXRG b3JTaW5nbGVPYmplY3QgKGhkbF9jbnRfbXR4LCBJTkZJTklURSk7CiAgIGlmIChmaGFuZGxlcl9i YXNlOjpkdXAgKGNoaWxkLCBmbGFncykpCiAgICAgcmVzID0gLTE7CiAgIGVsc2UgaWYgKHJlYWRf bXR4ICYmCkBAIC01ODksOCArNjExLDggQEAgZmhhbmRsZXJfcGlwZTo6ZHVwIChmaGFuZGxlcl9i YXNlICpjaGlsZCwgaW50IGZsYWdzKQogICAgIH0KICAgZWxzZSBpZiAoc2VsZWN0X3NlbSAmJgog CSAgICFEdXBsaWNhdGVIYW5kbGUgKEdldEN1cnJlbnRQcm9jZXNzICgpLCBzZWxlY3Rfc2VtLAot CQkJICAgIEdldEN1cnJlbnRQcm9jZXNzICgpLCAmZnRwLT5zZWxlY3Rfc2VtLAotCQkJICAgIDAs ICEoZmxhZ3MgJiBPX0NMT0VYRUMpLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpKQorCQkJICAgICBH ZXRDdXJyZW50UHJvY2VzcyAoKSwgJmZ0cC0+c2VsZWN0X3NlbSwKKwkJCSAgICAgMCwgIShmbGFn cyAmIE9fQ0xPRVhFQyksIERVUExJQ0FURV9TQU1FX0FDQ0VTUykpCiAgICAgewogICAgICAgX19z ZXRlcnJubyAoKTsKICAgICAgIGZ0cC0+Y2xvc2UgKCk7CkBAIC01OTgsMTMgKzYyMCwyNCBAQCBm aGFuZGxlcl9waXBlOjpkdXAgKGZoYW5kbGVyX2Jhc2UgKmNoaWxkLCBpbnQgZmxhZ3MpCiAgICAg fQogICBlbHNlIGlmIChxdWVyeV9oZGwgJiYKIAkgICAhRHVwbGljYXRlSGFuZGxlIChHZXRDdXJy ZW50UHJvY2VzcyAoKSwgcXVlcnlfaGRsLAotCQkJICAgIEdldEN1cnJlbnRQcm9jZXNzICgpLCAm ZnRwLT5xdWVyeV9oZGwsCi0JCQkgICAgMCwgIShmbGFncyAmIE9fQ0xPRVhFQyksIERVUExJQ0FU RV9TQU1FX0FDQ0VTUykpCisJCQkgICAgIEdldEN1cnJlbnRQcm9jZXNzICgpLCAmZnRwLT5xdWVy eV9oZGwsCisJCQkgICAgIDAsICEoZmxhZ3MgJiBPX0NMT0VYRUMpLCBEVVBMSUNBVEVfU0FNRV9B Q0NFU1MpKQorICAgIHsKKyAgICAgIF9fc2V0ZXJybm8gKCk7CisgICAgICBmdHAtPmNsb3NlICgp OworICAgICAgcmVzID0gLTE7CisgICAgfQorICBlbHNlIGlmIChoZGxfY250X210eCAmJgorCSAg ICFEdXBsaWNhdGVIYW5kbGUgKEdldEN1cnJlbnRQcm9jZXNzICgpLCBoZGxfY250X210eCwKKwkJ CSAgICAgR2V0Q3VycmVudFByb2Nlc3MgKCksICZmdHAtPmhkbF9jbnRfbXR4LAorCQkJICAgICAw LCAhKGZsYWdzICYgT19DTE9FWEVDKSwgRFVQTElDQVRFX1NBTUVfQUNDRVNTKSkKICAgICB7CiAg ICAgICBfX3NldGVycm5vICgpOwogICAgICAgZnRwLT5jbG9zZSAoKTsKICAgICAgIHJlcyA9IC0x OwogICAgIH0KKyAgaWYgKGhkbF9jbnRfbXR4KQorICAgIFJlbGVhc2VNdXRleCAoaGRsX2NudF9t dHgpOwogCiAgIGRlYnVnX3ByaW50ZiAoInJlcyAlZCIsIHJlcyk7CiAgIHJldHVybiByZXM7CkBA IC02MjAsOSArNjUzLDE3IEBAIGZoYW5kbGVyX3BpcGU6OmNsb3NlICgpCiAgICAgfQogICBpZiAo cmVhZF9tdHgpCiAgICAgQ2xvc2VIYW5kbGUgKHJlYWRfbXR4KTsKKyAgaWYgKGhkbF9jbnRfbXR4 KQorICAgIFdhaXRGb3JTaW5nbGVPYmplY3QgKGhkbF9jbnRfbXR4LCBJTkZJTklURSk7CiAgIGlm IChxdWVyeV9oZGwpCiAgICAgQ2xvc2VIYW5kbGUgKHF1ZXJ5X2hkbCk7Ci0gIHJldHVybiBmaGFu ZGxlcl9iYXNlOjpjbG9zZSAoKTsKKyAgaW50IHJldCA9IGZoYW5kbGVyX2Jhc2U6OmNsb3NlICgp OworICBpZiAoaGRsX2NudF9tdHgpCisgICAgeworICAgICAgUmVsZWFzZU11dGV4IChoZGxfY250 X210eCk7CisgICAgICBDbG9zZUhhbmRsZSAoaGRsX2NudF9tdHgpOworICAgIH0KKyAgcmV0dXJu IHJldDsKIH0KIAogI2RlZmluZSBQSVBFX0lOVFJPICJcXFxcLlxccGlwZVxcY3lnd2luLSIKQEAg LTgzNCw5ICs4NzUsMjEgQEAgZmhhbmRsZXJfcGlwZTo6Y3JlYXRlIChmaGFuZGxlcl9waXBlICpm aHNbMl0sIHVuc2lnbmVkIHBzaXplLCBpbnQgbW9kZSkKIAkJCUZJTEVfUkVBRF9EQVRBLCBzYS0+ YkluaGVyaXRIYW5kbGUsIDApKQogICAgIGdvdG8gZXJyX2Nsb3NlX3NlbGVjdF9zZW0xOwogCisg IGZoc1swXS0+aGRsX2NudF9tdHggPSBDcmVhdGVNdXRleFcgKHNhLCBGQUxTRSwgTlVMTCk7Cisg IGlmICghZmhzWzBdLT5oZGxfY250X210eCkKKyAgICBnb3RvIGVycl9jbG9zZV9xdWVyeV9oZGw7 CisgIGlmICghRHVwbGljYXRlSGFuZGxlIChHZXRDdXJyZW50UHJvY2VzcyAoKSwgZmhzWzBdLT5o ZGxfY250X210eCwKKwkJCUdldEN1cnJlbnRQcm9jZXNzICgpLCAmZmhzWzFdLT5oZGxfY250X210 eCwKKwkJCTAsIHNhLT5iSW5oZXJpdEhhbmRsZSwgRFVQTElDQVRFX1NBTUVfQUNDRVNTKSkKKyAg ICBnb3RvIGVycl9jbG9zZV9oZGxfY250X210eDA7CisKICAgcmVzID0gMDsKICAgZ290byBvdXQ7 CiAKK2Vycl9jbG9zZV9oZGxfY250X210eDA6CisgIENsb3NlSGFuZGxlIChmaHNbMF0tPmhkbF9j bnRfbXR4KTsKK2Vycl9jbG9zZV9xdWVyeV9oZGw6CisgIENsb3NlSGFuZGxlIChmaHNbMV0tPnF1 ZXJ5X2hkbCk7CiBlcnJfY2xvc2Vfc2VsZWN0X3NlbTE6CiAgIENsb3NlSGFuZGxlIChmaHNbMV0t PnNlbGVjdF9zZW0pOwogZXJyX2Nsb3NlX3NlbGVjdF9zZW0wOgotLSAKMi4zMy4wCgo= --Multipart=_Thu__16_Sep_2021_23_27_56_+0900_TGWWgMdM1/KFxxXJ--