delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2015/03/04/06:34:11

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=eyEFV
Pb3zVpPxGpVe0DBSHcT6HsGJ75UsRT/DguohBt4r4nLgKujqBi9dUwSJcBX6bvEQ
xj9rBCTTvDC/nyzbLKpk15FPv8mQk0rejc2Kz7X518D8vZZ9rHcWNDCofGpg53PS
W794UoW10Iz8OHG1pp5y3ARfz2x4IoQYzIPorY=
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=HeJAje7BYyy
EJwWgc2nbuNAqaXY=; b=PbcK8lGQqUTfjXSRWwPprq6D9YKovbvgo/48LuW2Fmw
JBB3h0coGw3Us3EsXCdPayU65XnEbAuhcSilOgctYQhm8jUuRZV735+A6gWPOH9v
o+duZ1i79Upr/+tmfXvLFk0A1m+KgxuT5675YY8XIRySpmuKVxJILAuQ3qtkoYV8
=
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.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_SORBS_DUL,SPF_PASS,UNSUBSCRIBE_BODY autolearn=no version=3.3.2
X-HELO: conuserg006-v.nifty.com
X-Nifty-SrcIP: [121.93.68.199]
Date: Wed, 4 Mar 2015 20:34:07 +0900
From: Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
To: cygwin AT cygwin DOT com
Subject: Re: Cygwin hangs up if several keys are typed during outputting a lot of texts.
Message-Id: <20150304203407.14008531b0fb63ad5c19a33f@nifty.ne.jp>
In-Reply-To: <20150302144426.GK3213@calimero.vinschen.de>
References: <20150228144019 DOT 0e4cfdb3a26bfac361b538e2 AT nifty DOT ne DOT jp> <20150228140251 DOT GA11124 AT calimero DOT vinschen DOT de> <20150302204502 DOT 39b3e03ad5084b0b5add5d10 AT nifty DOT ne DOT jp> <20150302144426 DOT GK3213 AT calimero DOT vinschen DOT de>
Mime-Version: 1.0
X-IsSubscribed: yes

--Multipart=_Wed__4_Mar_2015_20_34_07_+0900_bJkFL26csFkYYCRa
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

On Mon, 2 Mar 2015 15:44:26 +0100
Corinna Vinschen <corinna-cygwin AT cygwin DOT com> wrote:

> > 1) Buffer of named pipe gets full-filled by a lot of data written
> >   by slave side.
> > 2) WriteFile() in fhandler_pty_master::doecho(), which is called
> >   from master side by key input, is blocked because the buffer
> >   is full.
> > 3) If a handling to read from the pipe is in the same thread as
> >   key input, the thread falls into deadlock.
> > 
> > To check buffer space before WriteFile() is one idea,
> > but it is not smart, I suppose...
> 
> I think that's not it.  For testing I added code to convert the
> WriteFile calls in fhandler_pty_slave::write, fhandler_pty_master::doecho
> and fhandler_pty_slave::write to overlapped I/O and made sure to wait
> for the result after the output mutex has been released.
> 
> This change has no effect at all.  Looks like this needs some more
> digging.

Hmm.

To confirm my assumption, I have modified the TTY code
for testing. The modification is shown in an attached
diff-file against current CVS version. (Note that this
patch is not for fixing the problem. It is for just a
testing.)

With this modification, half of buffer is kept empty
for fhandler_pty_master::doecho(). I assumed the blocking
could be avoided because buffer is always free.

As a result of the test, it has become clear that this
modification conceals the problem. This means the problem
is closely related to occupancy of buffer.

Now, I suppose the cause has been clarified. So we have
to work out a solution. How can we resolve this problem?

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

--Multipart=_Wed__4_Mar_2015_20_34_07_+0900_bJkFL26csFkYYCRa
Content-Type: application/octet-stream;
 name="cygwin-test.patch.20150304"
Content-Disposition: attachment;
 filename="cygwin-test.patch.20150304"
Content-Transfer-Encoding: base64

SW5kZXg6IHNyYy93aW5zdXAvY3lnd2luL2ZoYW5kbGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL3dpbnN1cC9j
eWd3aW4vZmhhbmRsZXIuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41MTMK
ZGlmZiAtdSAtcCAtcjEuNTEzIGZoYW5kbGVyLmgKLS0tIHNyYy93aW5zdXAv
Y3lnd2luL2ZoYW5kbGVyLmgJMjQgRmViIDIwMTUgMTE6MDU6MDIgLTAwMDAJ
MS41MTMKKysrIHNyYy93aW5zdXAvY3lnd2luL2ZoYW5kbGVyLmgJNCBNYXIg
MjAxNSAxMTowMToyNyAtMDAwMApAQCAtMTUxMiw2ICsxNTEyLDcgQEAgY2xh
c3MgZmhhbmRsZXJfcHR5X2NvbW1vbjogcHVibGljIGZoYW5kbAogY2xhc3Mg
ZmhhbmRsZXJfcHR5X3NsYXZlOiBwdWJsaWMgZmhhbmRsZXJfcHR5X2NvbW1v
bgogewogICBIQU5ETEUgaW51c2U7CQkJLy8gdXNlZCB0byBpbmRpY2F0ZSB0
aGF0IGEgdHR5IGlzIGluIHVzZQorICBIQU5ETEUgZnJvbV9zbGF2ZSwgdG9f
c2xhdmU7CS8vIGZvciB0ZXN0aW5nCiAKICAgLyogSGVscGVyIGZ1bmN0aW9u
cyBmb3IgZmNobW9kIGFuZCBmY2hvd24uICovCiAgIGJvb2wgZmNoX29wZW5f
aGFuZGxlcyAoYm9vbCBjaG93bik7CkluZGV4OiBzcmMvd2luc3VwL2N5Z3dp
bi9maGFuZGxlcl90dHkuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9zcmMvc3JjL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfdHR5
LmNjLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI5MApkaWZmIC11IC1wIC1y
MS4yOTAgZmhhbmRsZXJfdHR5LmNjCi0tLSBzcmMvd2luc3VwL2N5Z3dpbi9m
aGFuZGxlcl90dHkuY2MJMjUgRmViIDIwMTUgMTY6NDY6NTcgLTAwMDAJMS4y
OTAKKysrIHNyYy93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3R0eS5jYwk0IE1h
ciAyMDE1IDExOjAxOjI3IC0wMDAwCkBAIC00Miw2ICs0Miw4IEBAIHN0cnVj
dCBwaXBlX3JlcXVlc3Qgewogc3RydWN0IHBpcGVfcmVwbHkgewogICBIQU5E
TEUgZnJvbV9tYXN0ZXI7CiAgIEhBTkRMRSB0b19tYXN0ZXI7CisgIEhBTkRM
RSBmcm9tX3NsYXZlOworICBIQU5ETEUgdG9fc2xhdmU7CiAgIERXT1JEIGVy
cm9yOwogfTsKIApAQCAtMzc4LDcgKzM4MCw4IEBAIG91dDoKIC8qIHB0eSBz
bGF2ZSBzdHVmZiAqLwogCiBmaGFuZGxlcl9wdHlfc2xhdmU6OmZoYW5kbGVy
X3B0eV9zbGF2ZSAoaW50IHVuaXQpCi0gIDogZmhhbmRsZXJfcHR5X2NvbW1v
biAoKSwgaW51c2UgKE5VTEwpCisgIDogZmhhbmRsZXJfcHR5X2NvbW1vbiAo
KSwgaW51c2UgKE5VTEwpLAorICAgIGZyb21fc2xhdmUgKE5VTEwpLCB0b19z
bGF2ZSAoTlVMTCkKIHsKICAgaWYgKHVuaXQgPj0gMCkKICAgICBkZXYgKCku
cGFyc2UgKERFVl9QVFlTX01BSk9SLCB1bml0KTsKQEAgLTM4OCwxMCArMzkx
LDEyIEBAIGludAogZmhhbmRsZXJfcHR5X3NsYXZlOjpvcGVuIChpbnQgZmxh
Z3MsIG1vZGVfdCkKIHsKICAgSEFORExFIHB0eV9vd25lciwgZnJvbV9tYXN0
ZXJfbG9jYWwsIHRvX21hc3Rlcl9sb2NhbDsKKyAgSEFORExFIGZyb21fc2xh
dmVfbG9jYWwsIHRvX3NsYXZlX2xvY2FsOwogICBIQU5ETEUgKmhhbmRsZXNb
XSA9CiAgIHsKICAgICAmZnJvbV9tYXN0ZXJfbG9jYWwsICZpbnB1dF9hdmFp
bGFibGVfZXZlbnQsICZpbnB1dF9tdXRleCwgJmludXNlLAogICAgICZvdXRw
dXRfbXV0ZXgsICZ0b19tYXN0ZXJfbG9jYWwsICZwdHlfb3duZXIsCisgICAg
JmZyb21fc2xhdmVfbG9jYWwsICZ0b19zbGF2ZV9sb2NhbCwKICAgICBOVUxM
CiAgIH07CiAKQEAgLTUwMCw2ICs1MDUsMjIgQEAgZmhhbmRsZXJfcHR5X3Ns
YXZlOjpvcGVuIChpbnQgZmxhZ3MsIG1vZAogCSAgZXJybXNnID0gImNhbid0
IGR1cGxpY2F0ZSBvdXRwdXQsICVFIjsKIAkgIGdvdG8gZXJyOwogCX0KKyAg
ICAgIGlmICghRHVwbGljYXRlSGFuZGxlIChwdHlfb3duZXIsIGdldF90dHlw
ICgpLT5mcm9tX3NsYXZlICgpLAorCQkJICAgIEdldEN1cnJlbnRQcm9jZXNz
ICgpLCAmZnJvbV9zbGF2ZV9sb2NhbCwgMCwgVFJVRSwKKwkJCSAgICBEVVBM
SUNBVEVfU0FNRV9BQ0NFU1MpKQorCXsKKwkgIHRlcm1pb3NfcHJpbnRmICgi
Y2FuJ3QgZHVwbGljYXRlIG1hc3RlciBpbnB1dCBmcm9tICV1LyVwLCAlRSIs
CisJCQkgIGdldF90dHlwICgpLT5tYXN0ZXJfcGlkLCBnZXRfdHR5cCAoKS0+
ZnJvbV9zbGF2ZSAoKSk7CisJICBfX3NldGVycm5vICgpOworCSAgZ290byBl
cnJfbm9fbXNnOworCX0KKyAgICAgIGlmICghRHVwbGljYXRlSGFuZGxlIChw
dHlfb3duZXIsIGdldF90dHlwICgpLT50b19zbGF2ZSAoKSwKKwkJCSAgR2V0
Q3VycmVudFByb2Nlc3MgKCksICZ0b19zbGF2ZV9sb2NhbCwgMCwgVFJVRSwK
KwkJCSAgRFVQTElDQVRFX1NBTUVfQUNDRVNTKSkKKwl7CisJICBlcnJtc2cg
PSAiY2FuJ3QgZHVwbGljYXRlIG1hc3RlciBvdXRwdXQsICVFIjsKKwkgIGdv
dG8gZXJyOworCX0KICAgICAgIGlmIChwdHlfb3duZXIgIT0gR2V0Q3VycmVu
dFByb2Nlc3MgKCkpCiAJQ2xvc2VIYW5kbGUgKHB0eV9vd25lcik7CiAgICAg
fQpAQCAtNTIwLDIzICs1NDEsMzkgQEAgZmhhbmRsZXJfcHR5X3NsYXZlOjpv
cGVuIChpbnQgZmxhZ3MsIG1vZAogCX0KICAgICAgIGZyb21fbWFzdGVyX2xv
Y2FsID0gcmVwbC5mcm9tX21hc3RlcjsKICAgICAgIHRvX21hc3Rlcl9sb2Nh
bCA9IHJlcGwudG9fbWFzdGVyOworICAgICAgZnJvbV9zbGF2ZV9sb2NhbCA9
IHJlcGwuZnJvbV9zbGF2ZTsKKyAgICAgIHRvX3NsYXZlX2xvY2FsID0gcmVw
bC50b19zbGF2ZTsKICAgICAgIGlmICghZnJvbV9tYXN0ZXJfbG9jYWwgfHwg
IXRvX21hc3Rlcl9sb2NhbCkKIAl7CiAJICBTZXRMYXN0RXJyb3IgKHJlcGwu
ZXJyb3IpOwogCSAgZXJybXNnID0gImVycm9yIGR1cGxpY2F0aW5nIHBpcGVz
LCAlRSI7CiAJICBnb3RvIGVycjsKIAl9CisgICAgICBpZiAoIWZyb21fc2xh
dmVfbG9jYWwgfHwgIXRvX3NsYXZlX2xvY2FsKQorCXsKKwkgIFNldExhc3RF
cnJvciAocmVwbC5lcnJvcik7CisJICBlcnJtc2cgPSAiZXJyb3IgZHVwbGlj
YXRpbmcgbWFzdGVyIHBpcGVzLCAlRSI7CisJICBnb3RvIGVycjsKKwl9CiAg
ICAgfQogICBWZXJpZnlIYW5kbGUgKGZyb21fbWFzdGVyX2xvY2FsKTsKICAg
VmVyaWZ5SGFuZGxlICh0b19tYXN0ZXJfbG9jYWwpOworICBWZXJpZnlIYW5k
bGUgKGZyb21fc2xhdmVfbG9jYWwpOworICBWZXJpZnlIYW5kbGUgKHRvX3Ns
YXZlX2xvY2FsKTsKIAogICB0ZXJtaW9zX3ByaW50ZiAoImR1cGxpY2F0ZWQg
ZnJvbV9tYXN0ZXIgJXAtPiVwIGZyb20gcHR5X293bmVyIiwKIAkJICBnZXRf
dHR5cCAoKS0+ZnJvbV9tYXN0ZXIgKCksIGZyb21fbWFzdGVyX2xvY2FsKTsK
ICAgdGVybWlvc19wcmludGYgKCJkdXBsaWNhdGVkIHRvX21hc3RlciAlcC0+
JXAgZnJvbSBwdHlfb3duZXIiLAogCQkgIGdldF90dHlwICgpLT50b19tYXN0
ZXIgKCksIHRvX21hc3Rlcl9sb2NhbCk7CisgIHRlcm1pb3NfcHJpbnRmICgi
ZHVwbGljYXRlZCBmcm9tX3NsYXZlICVwLT4lcCBmcm9tIHB0eV9vd25lciIs
CisJCSAgZ2V0X3R0eXAgKCktPmZyb21fc2xhdmUgKCksIGZyb21fc2xhdmVf
bG9jYWwpOworICB0ZXJtaW9zX3ByaW50ZiAoImR1cGxpY2F0ZWQgdG9fc2xh
dmUgJXAtPiVwIGZyb20gcHR5X293bmVyIiwKKwkJICBnZXRfdHR5cCAoKS0+
dG9fc2xhdmUgKCksIHRvX3NsYXZlX2xvY2FsKTsKIAogICBzZXRfaW9faGFu
ZGxlIChmcm9tX21hc3Rlcl9sb2NhbCk7CiAgIHNldF9vdXRwdXRfaGFuZGxl
ICh0b19tYXN0ZXJfbG9jYWwpOworICBmcm9tX3NsYXZlID0gZnJvbV9zbGF2
ZV9sb2NhbDsKKyAgdG9fc2xhdmUgPSB0b19zbGF2ZV9sb2NhbDsKIAogICBm
aGFuZGxlcl9jb25zb2xlOjpuZWVkX2ludmlzaWJsZSAoKTsKICAgc2V0X29w
ZW5fc3RhdHVzICgpOwpAQCAtNTg3LDYgKzYyNCwxMCBAQCBmaGFuZGxlcl9w
dHlfc2xhdmU6OmNsb3NlICgpCiAgICAgdGVybWlvc19wcmludGYgKCJDbG9z
ZUhhbmRsZSAoaW5wdXRfYXZhaWxhYmxlX2V2ZW50PCVwPiksICVFIiwgaW5w
dXRfYXZhaWxhYmxlX2V2ZW50KTsKICAgaWYgKCh1bnNpZ25lZCkgbXlzZWxm
LT5jdHR5ID09IEZIREVWIChERVZfUFRZU19NQUpPUiwgZ2V0X21pbm9yICgp
KSkKICAgICBmaGFuZGxlcl9jb25zb2xlOjpmcmVlX2NvbnNvbGUgKCk7CS8q
IGFzc3VtZXMgdGhhdCB3ZSBhcmUgdGhlIGxhc3QgcHR5IGNsb3NlciAqLwor
ICBpZiAoIUZvcmNlQ2xvc2VIYW5kbGUgKGZyb21fc2xhdmUpKQorICAgIHRl
cm1pb3NfcHJpbnRmICgiZXJyb3IgY2xvc2luZyBmcm9tX3NsYXZlICVwLCAl
RSIsIGZyb21fc2xhdmUpOworICBpZiAoIUZvcmNlQ2xvc2VIYW5kbGUgKHRv
X3NsYXZlKSkKKyAgICB0ZXJtaW9zX3ByaW50ZiAoImVycm9yIGNsb3Npbmcg
dG9fc2xhdmUgJXAsICVFIiwgdG9fc2xhdmUpOwogICByZXR1cm4gZmhhbmRs
ZXJfcHR5X2NvbW1vbjo6Y2xvc2UgKCk7CiB9CiAKQEAgLTY1Myw2ICs2OTQs
MjggQEAgZmhhbmRsZXJfcHR5X3NsYXZlOjp3cml0ZSAoY29uc3Qgdm9pZCAq
cAogCiAgICAgICB3aGlsZSAodGMgKCktPm91dHB1dF9zdG9wcGVkKQogCWN5
Z3dhaXQgKDEwKTsKKworICAgICAgLyogZm9yIHRlc3RpbmcgKi8KKyAgICAg
IERXT1JEIGJ1ZmxlbjsKKyAgICAgIGlmICghR2V0TmFtZWRQaXBlSW5mbyAo
Z2V0X291dHB1dF9oYW5kbGUgKCksIE5VTEwsICZidWZsZW4sIE5VTEwsIE5V
TEwpKQorCXsKKwkgIHRlcm1pb3NfcHJpbnRmICgiR2V0TmFtZWRQaXBlSW5m
byglcCkgZmFpbGVkLCAlRSIsIGdldF9vdXRwdXRfaGFuZGxlICgpKTsKKwkg
IGJ1ZmxlbiA9IGZoYW5kbGVyX3B0eV9jb21tb246OnBpcGVzaXplOworCX0K
KyAgICAgIERXT1JEIG9jY3VwaWVkOworICAgICAgaWYgKCFQZWVrTmFtZWRQ
aXBlIChmcm9tX3NsYXZlLCBOVUxMLCAwLCBOVUxMLCAmb2NjdXBpZWQsIE5V
TEwpKQorCXsKKwkgIHRlcm1pb3NfcHJpbnRmICgiUGVla05hbWVkUGlwZSgl
cCkgZmFpbGVkLCAlRSIsIGZyb21fc2xhdmUpOworCX0KKyAgICAgIGVsc2UK
Kwl7CisJICB3aGlsZSAobiArIG9jY3VwaWVkID4gYnVmbGVuIC8gMikKKwkg
ICAgeworCSAgICAgIGN5Z3dhaXQgKDEwKTsKKwkgICAgICBQZWVrTmFtZWRQ
aXBlIChmcm9tX3NsYXZlLCBOVUxMLCAwLCBOVUxMLCAmb2NjdXBpZWQsIE5V
TEwpOworCSAgICB9CisJfQorCiAgICAgICBhY3F1aXJlX291dHB1dF9tdXRl
eCAoSU5GSU5JVEUpOwogCiAgICAgICAvKiBQcmV2aW91cyB3cml0ZSBtYXkg
aGF2ZSBzZXQgd3JpdGVfZXJyb3IgdG8gIT0gMC4gIENoZWNrIGl0IGhlcmUu
CkBAIC0xNTk3LDYgKzE2NjAsMjAgQEAgZmhhbmRsZXJfcHR5X21hc3Rlcjo6
cHR5X21hc3Rlcl90aHJlYWQgKAogCSAgICAgIHRlcm1pb3NfcHJpbnRmICgi
RHVwbGljYXRlSGFuZGxlICh0b19tYXN0ZXIpLCAlRSIpOwogCSAgICAgIGdv
dG8gcmVwbHk7CiAJICAgIH0KKwkgIGlmICghRHVwbGljYXRlSGFuZGxlIChH
ZXRDdXJyZW50UHJvY2VzcyAoKSwgZ2V0X2lvX2hhbmRsZSAoKSwKKwkJCSAg
ICAgICBjbGllbnQsICZyZXBsLmZyb21fc2xhdmUsCisJCQkgICAgICAgMCwg
VFJVRSwgRFVQTElDQVRFX1NBTUVfQUNDRVNTKSkKKwkgICAgeworCSAgICAg
IHRlcm1pb3NfcHJpbnRmICgiRHVwbGljYXRlSGFuZGxlIChmcm9tX3NsYXZl
KSwgJUUiKTsKKwkgICAgICBnb3RvIHJlcGx5OworCSAgICB9CisJICBpZiAo
IUR1cGxpY2F0ZUhhbmRsZSAoR2V0Q3VycmVudFByb2Nlc3MgKCksIGdldF9v
dXRwdXRfaGFuZGxlICgpLAorCQkJCWNsaWVudCwgJnJlcGwudG9fc2xhdmUs
CisJCQkJMCwgVFJVRSwgRFVQTElDQVRFX1NBTUVfQUNDRVNTKSkKKwkgICAg
eworCSAgICAgIHRlcm1pb3NfcHJpbnRmICgiRHVwbGljYXRlSGFuZGxlICh0
b19zbGF2ZSksICVFIik7CisJICAgICAgZ290byByZXBseTsKKwkgICAgfQog
CX0KIHJlcGx5OgogICAgICAgcmVwbC5lcnJvciA9IEdldExhc3RFcnJvciAo
KTsKQEAgLTE3MTEsNiArMTc4OCw4IEBAIGZoYW5kbGVyX3B0eV9tYXN0ZXI6
OnNldHVwICgpCiAKICAgdC5zZXRfZnJvbV9tYXN0ZXIgKGZyb21fbWFzdGVy
KTsKICAgdC5zZXRfdG9fbWFzdGVyICh0b19tYXN0ZXIpOworICB0LnNldF9m
cm9tX3NsYXZlIChnZXRfaW9faGFuZGxlICgpKTsKKyAgdC5zZXRfdG9fc2xh
dmUgKGdldF9vdXRwdXRfaGFuZGxlICgpKTsKICAgdC53aW5zaXplLndzX2Nv
bCA9IDgwOwogICB0LndpbnNpemUud3Nfcm93ID0gMjU7CiAgIHQubWFzdGVy
X3BpZCA9IG15c2VsZi0+cGlkOwpJbmRleDogc3JjL3dpbnN1cC9jeWd3aW4v
dHR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9z
cmMvc3JjL3dpbnN1cC9jeWd3aW4vdHR5LmgsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMzcKZGlmZiAtdSAtcCAtcjEuMzcgdHR5LmgKLS0tIHNyYy93aW5z
dXAvY3lnd2luL3R0eS5oCTIzIEFwciAyMDEzIDA5OjQ0OjM0IC0wMDAwCTEu
MzcKKysrIHNyYy93aW5zdXAvY3lnd2luL3R0eS5oCTQgTWFyIDIwMTUgMTE6
MDE6MjcgLTAwMDAKQEAgLTEwNCwxNSArMTA0LDI5IEBAIHByaXZhdGU6CiAg
ICAgSEFORExFIF90b19tYXN0ZXI7CiAgICAgTEFSR0VfSU5URUdFUiBfdG1f
ZHVtbXk7CiAgIH07CisgIHVuaW9uIHsKKyAgICBIQU5ETEUgX2Zyb21fc2xh
dmU7CisgICAgTEFSR0VfSU5URUdFUiBfZnNfZHVtbXk7CisgIH07CisgIHVu
aW9uIHsgICAgCisgICAgSEFORExFIF90b19zbGF2ZTsKKyAgICBMQVJHRV9J
TlRFR0VSIF90c19kdW1teTsKKyAgfTsKIHB1YmxpYzoKICAgSEFORExFIGZy
b21fbWFzdGVyKCkgY29uc3QgeyByZXR1cm4gX2Zyb21fbWFzdGVyOyB9CiAg
IEhBTkRMRSB0b19tYXN0ZXIoKSBjb25zdCB7IHJldHVybiBfdG9fbWFzdGVy
OyB9CisgIEhBTkRMRSBmcm9tX3NsYXZlKCkgY29uc3QgeyByZXR1cm4gX2Zy
b21fc2xhdmU7IH0KKyAgSEFORExFIHRvX3NsYXZlKCkgY29uc3QgeyByZXR1
cm4gX3RvX3NsYXZlOyB9CiAjaWZkZWYgX194ODZfNjRfXwogICB2b2lkIHNl
dF9mcm9tX21hc3RlciAoSEFORExFIGgpIHsgX2Zyb21fbWFzdGVyID0gaDsg
fQogICB2b2lkIHNldF90b19tYXN0ZXIgKEhBTkRMRSBoKSB7IF90b19tYXN0
ZXIgPSBoOyB9CisgIHZvaWQgc2V0X2Zyb21fc2xhdmUgKEhBTkRMRSBoKSB7
IF9mcm9tX3NsYXZlID0gaDsgfQorICB2b2lkIHNldF90b19zbGF2ZSAoSEFO
RExFIGgpIHsgX3RvX3NsYXZlID0gaDsgfQogI2Vsc2UKICAgdm9pZCBzZXRf
ZnJvbV9tYXN0ZXIgKEhBTkRMRSBoKSB7IF9mbV9kdW1teS5IaWdoUGFydCA9
IDA7IF9mcm9tX21hc3RlciA9IGg7IH0KICAgdm9pZCBzZXRfdG9fbWFzdGVy
IChIQU5ETEUgaCkgeyBfdG1fZHVtbXkuSGlnaFBhcnQgPSAwOyBfdG9fbWFz
dGVyID0gaDsgfQorICB2b2lkIHNldF9mcm9tX3NsYXZlIChIQU5ETEUgaCkg
eyBfZnNfZHVtbXkuSGlnaFBhcnQgPSAwOyBfZnJvbV9zbGF2ZSA9IGg7IH0K
KyAgdm9pZCBzZXRfdG9fc2xhdmUgKEhBTkRMRSBoKSB7IF90c19kdW1teS5I
aWdoUGFydCA9IDA7IF90b19zbGF2ZSA9IGg7IH0KICNlbmRpZgogCiAgIGlu
dCByZWFkX3JldHZhbDsK


--Multipart=_Wed__4_Mar_2015_20_34_07_+0900_bJkFL26csFkYYCRa
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=_Wed__4_Mar_2015_20_34_07_+0900_bJkFL26csFkYYCRa--

- Raw text -


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