delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/04/20/07:59:25

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,T_FRT_STOCK2,T_TO_NO_BRKTS_FREEMAIL
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
In-Reply-To: <20110418155405.GG25815@calimero.vinschen.de>
References: <BANLkTi=GgZfG_QwAWtyqAYQeqOwEbcSFLw AT mail DOT gmail DOT com> <BANLkTimkmQd86k2PwSzehBEcXt6y6H3kJQ AT mail DOT gmail DOT com> <20110418155405 DOT GG25815 AT calimero DOT vinschen DOT de>
Date: Wed, 20 Apr 2011 13:58:55 +0200
Message-ID: <BANLkTi=mkaq2tBp-BO7MzM_Cvc05si4Dmw@mail.gmail.com>
Subject: Re: poll function don't release all windows handle / possible memory leak
From: Thomas Stalder <cygwinml AT gmail DOT com>
To: cygwin AT cygwin DOT com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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

--bcaec51b1ba7624f7304a158593d
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hello,

Thanks for the fix.

I have made some tests with the CVS version and I don't have anymore
not closed Handle, but I still have a memory leaks.

I have made 2 testcases :

$ gcc server.c -o server
$ gcc server.c -Dnoleak -o servernoleak
$ gcc client.c -o client

I execute sever.exe and client.exe

after 1 minute I have 2992Ko memory used by server.exe (see
http://www.netsolux.ch/cyg/5.gif)
after about 10 minutes I have 5156Ko memory used by server.exe  (see
http://www.netsolux.ch/cyg/6.gif)

If I execute severnoleak.exe and client.exe I dont have memory leak.

The memory leak seem to be in the poll (select) function.

Regards,

Thomas

2011/4/18 Corinna Vinschen
> On Apr 18 11:35, Thomas Stalder wrote:
>> Hello,
>>
>> I have found that poll function don't release all windows handle (with
>> network socket) and generate memory leak.
>
> That's actually a pthread problem in conjunction with select (poll only
> calls select under the hood). =A0I applied a fix to CVS. =A0Thanks for the
> testcase!
>
>
> Corinna
>
> --
> Corinna Vinschen =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Please, send mails re=
garding Cygwin to
> Cygwin Project Co-Leader =A0 =A0 =A0 =A0 =A0cygwin AT cygwin DOT com
> Red Hat
>
> --
> Problem reports: =A0 =A0 =A0 http://cygwin.com/problems.html
> FAQ: =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 http://cygwin.com/faq/
> Documentation: =A0 =A0 =A0 =A0 http://cygwin.com/docs.html
> Unsubscribe info: =A0 =A0 =A0http://cygwin.com/ml/#unsubscribe-simple
>
>

--bcaec51b1ba7624f7304a158593d
Content-Type: text/x-csrc; charset=US-ASCII; name="server.c"
Content-Disposition: attachment; filename="server.c"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gmq6u7gi0

I2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lzL3NvY2tldC5o
PgojaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiNpbmNsdWRlIDxuZXRpbmV0L2lu
Lmg+CiNpbmNsdWRlIDxuZXRpbmV0L2lwLmg+CiNpbmNsdWRlIDxuZXRpbmV0
L3RjcC5oPgojaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CiNpbmNsdWRlIDxuZXRk
Yi5oPgojaW5jbHVkZSA8c3lzL3VuLmg+CiNpbmNsdWRlIDxlcnJuby5oPgoj
aW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxwdGhyZWFkLmg+CiNpbmNs
dWRlIDxmY250bC5oPgojaW5jbHVkZSA8cG9sbC5oPgojaW5jbHVkZSA8c3Rk
bGliLmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkYXJnLmg+
CgojZGVmaW5lIHBvcnQgODA4MgojZGVmaW5lIFJFUVVJUkVEX1NUQUNLX1NJ
WkUgMjAwKjEwMjQKI2RlZmluZSBPSwkwCiNkZWZpbmUgTk9UX09LCSghT0sp
CgoKcHRocmVhZF9tdXRleF90IG11dGV4X2xvZyA9IFBUSFJFQURfTVVURVhf
SU5JVElBTElaRVI7CgppbnQgbG9nZ2VyKGNvbnN0IGNoYXIgKmZpbGUsIGNv
bnN0IGNoYXIgKmZ1bmN0aW9uLCBpbnQgbGluZSwgY29uc3QgY2hhciAqZm10
LCAuLi4pCnsKICAgICAgICB2YV9saXN0IGFyZ2xpc3Q7CglwdGhyZWFkX211
dGV4X2xvY2soJm11dGV4X2xvZyk7CiAgICAgICAgZnByaW50ZihzdGRlcnIs
ICIlcyAoJXMpIC0gbGluZSAlMDRkIDogIiwgZmlsZSwgZnVuY3Rpb24sIGxp
bmUpOwogICAgICAgIHZhX3N0YXJ0KGFyZ2xpc3QsIGZtdCk7CiAgICAgICAg
dmZwcmludGYoc3RkZXJyLCBmbXQsIGFyZ2xpc3QpOwogICAgICAgIHZhX2Vu
ZChhcmdsaXN0KTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7Cglw
dGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXhfbG9nKTsKICAgICAgICByZXR1
cm4gMDsKfQoKI2RlZmluZSBfbG9nKGZtdCwgLi4uKSBsb2dnZXIoX19GSUxF
X18sIChjaGFyICopX19GVU5DVElPTl9fLCAgX19MSU5FX18sIGZtdCwgIyMg
X19WQV9BUkdTX18pCgppbnQgY2xvc2Vfc29ja2V0X2ZkKGludCBmZCkgCnsK
ICAgICAgICBpbnQgcmM7IAoKICAgICAgICBpZihmZCA8IDApCiAgICAgICAg
ICAgICAgICByZXR1cm4gT0s7IAoKICAgICAgICByYyA9IHNodXRkb3duKGZk
LCBTSFVUX1JEV1IpOwoKICAgICAgICByYyA9IGNsb3NlKGZkKTsKCiAgICAg
ICAgaWYocmMpIHsKICAgICAgICAgICAgICAgIF9sb2coImNsb3NlICVkIDog
JXMiLCBmZCwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICB9ICAgCgogICAg
ICAgIHJldHVybiBPSzsgCn0KCnN0YXRpYyB2b2lkICpzZXJ2ZXJ0aHJlYWQo
dm9pZCAqcGFybSkKewoJc3RydWN0IHBvbGxmZCBwZmQ7CgljaGFyIGJ1ZmY7
CglpbnQgZmQgPSAoaW50KXBhcm07CglpbnQgcmM7CgojaWZkZWYgbm9sZWFr
CglzbGVlcCgzKTsKCXJjID0gMTsKI2Vsc2UKCXBmZC5mZCA9IGZkOyAKCXBm
ZC5ldmVudHMgPSBQT0xMSU4gfCBQT0xMUFJJOwoJcGZkLnJldmVudHMgPSAw
OwoJcmMgPSBwb2xsKCZwZmQsIDEsIDMwMDApOwojZW5kaWYKCglpZiAocmMg
PT0gMSkKCXsKCQlfbG9nKCJJQ0kgJWQiLCBmZCk7CgkJcmMgPSByZWFkKGZk
LCAmYnVmZiwgMSk7CgkJX2xvZygicmVhZCAlZCBieXRlcyIsIHJjKTsKCX0K
CgljbG9zZV9zb2NrZXRfZmQoZmQpOwogICAgICAgIHB0aHJlYWRfZXhpdCgw
KTsKICAgICAgICByZXR1cm4gTlVMTDsJCn0KCmludCBjcmVhdGVfdGhyZWFk
KHB0aHJlYWRfdCAqIHRocmVhZCwgdm9pZCAqIHRocmVhZF9mdW5jLCB2b2lk
ICogYXJnLCB1bnNpZ25lZCBjaGFyIG11c3RfZGV0YWNoKQp7CiAgICAgICAg
aW50IGVyciA9IE9LOyAKICAgICAgICBwdGhyZWFkX2F0dHJfdCBhdHRyOwog
ICAgICAgIHB0aHJlYWRfdCBudWxsX3RocmVhZDsKICAgICAgICAvKiAgSW5p
dGlhbGl6ZSB0aGUgYXR0cmlidXRlICovCiAgICAgICAgZXJyID0gcHRocmVh
ZF9hdHRyX2luaXQoJmF0dHIpOwogICAgICAgIGlmKGVycikgewogICAgICAg
ICAgICAgICAgX2xvZygicHRocmVhZF9hdHRyX2luaXQgZXJyPSVkOiAlcyIs
IGVyciwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICAgICAgICAgIHJldHVy
biBOT1RfT0s7CiAgICAgICAgfSAgIAogICAgICAgIGVyciA9IHB0aHJlYWRf
YXR0cl9zZXRpbmhlcml0c2NoZWQoJmF0dHIsIFBUSFJFQURfSU5IRVJJVF9T
Q0hFRCk7CiAgICAgICAgaWYoZXJyKSB7CiAgICAgICAgICAgICAgICBfbG9n
KCJwdGhyZWFkX2F0dHJfc2V0aW5oZXJpdHNjaGVkOiAlcyIsIHN0cmVycm9y
KGVycm5vKSk7CiAgICAgICAgICAgICAgICBwdGhyZWFkX2F0dHJfZGVzdHJv
eSgmYXR0cik7CiAgICAgICAgICAgICAgICByZXR1cm4gTk9UX09LOwogICAg
ICAgIH0gICAKICAgICAgICBlcnIgPSBwdGhyZWFkX2F0dHJfc2V0c3RhY2tz
aXplKCZhdHRyLCBSRVFVSVJFRF9TVEFDS19TSVpFKTsKICAgICAgICBpZihl
cnIpIHsKICAgICAgICAgICAgICAgIF9sb2coInB0aHJlYWRfYXR0cl9zZXRz
dGFja3NpemU6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICAgICAg
ICAgIHB0aHJlYWRfYXR0cl9kZXN0cm95KCZhdHRyKTsKICAgICAgICAgICAg
ICAgIHJldHVybiBOT1RfT0s7CiAgICAgICAgfSAgIAogICAgICAgIGlmKG11
c3RfZGV0YWNoKSB7CiAgICAgICAgICAgICAgICBlcnIgPSBwdGhyZWFkX2F0
dHJfc2V0ZGV0YWNoc3RhdGUoJmF0dHIsIFBUSFJFQURfQ1JFQVRFX0RFVEFD
SEVEKTsKICAgICAgICAgICAgICAgIGlmKGVycikgewogICAgICAgICAgICAg
ICAgICAgICAgICBfbG9nKCJwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGU6
ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgcHRocmVhZF9hdHRyX2Rlc3Ryb3koJmF0dHIpOwogICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gTk9UX09LOwogICAgICAgICAgICAgICAgfSAg
IAogICAgICAgIH0gICAKICAgICAgICAvKiAgQ3JlYXRlIHRoZSB0aHJlYWQg
d2l0aCBvdXIgYXR0cmlidXRlICovCiAgICAgICAgZXJyID0gcHRocmVhZF9j
cmVhdGUoKHRocmVhZCAhPSBOVUxMKSA/ICh0aHJlYWQpIDogKCZudWxsX3Ro
cmVhZCksICZhdHRyLCB0aHJlYWRfZnVuYywgYXJnKTsKICAgICAgICBpZihl
cnIpIHsKICAgICAgICAgICAgICAgIF9sb2coInB0aHJlYWRfY3JlYXRlOiAl
cyIsIHN0cmVycm9yKGVycm5vKSk7CiAgICAgICAgICAgICAgICBwdGhyZWFk
X2F0dHJfZGVzdHJveSgmYXR0cik7CiAgICAgICAgICAgICAgICByZXR1cm4g
KGVycik7CiAgICAgICAgfSAgIAogICAgICAgIHB0aHJlYWRfYXR0cl9kZXN0
cm95KCZhdHRyKTsKICAgICAgICByZXR1cm4gT0s7IAp9CgppbnQgbWFpbih2
b2lkKQp7CiAgICAgICAgc3RydWN0IHNvY2thZGRyX2luIGFkZHI7CiAgICAg
ICAgaW50IG5ld19zb2NrLCBvbjsKICAgICAgICBzdHJ1Y3QgcG9sbGZkIHBm
ZDsKICAgICAgICBpbnQgZmQ7CiAgICAgICAgc29ja2xlbl90IGFkZHJsZW47
CglpbnQgcmV0LCByYzsKCiAgICAgICAgYWRkci5zaW5fZmFtaWx5ID0gQUZf
SU5FVDsKICAgICAgICBhZGRyLnNpbl9wb3J0ID0gaHRvbnMocG9ydCk7CiAg
ICAgICAgYWRkci5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOwogICAg
ICAgIG1lbXNldCgmKGFkZHIuc2luX3plcm8pLCAnXDAnLCA4KTsKICAgICAg
ICBmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19U
Q1ApOwoKICAgICAgICBpZihmZCA8IDApIHsKICAgICAgICAgICAgICAgIF9s
b2coInNvY2tldCA6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICAg
ICAgICAgIHJldHVybiBOT1RfT0s7CiAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgIF9sb2coIlNvY2tldCBPSyIpOwogICAgICAgIH0KCiAgICAg
ICAgb24gPSAxOwogICAgICAgIHJldCA9IHNldHNvY2tvcHQoZmQsIFNPTF9T
T0NLRVQsIFNPX1JFVVNFQUREUiwgJm9uLCBzaXplb2Yob24pKTsKCiAgICAg
ICAgaWYocmV0IDwgMCkgewogICAgICAgICAgICAgICAgX2xvZygic2V0c29j
a29wdCA6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAgICB9CgogICAg
ICAgIHJldCA9IC0xOwoKICAgICAgICB3aGlsZShyZXQgPCAwKSB7CiAgICAg
ICAgICAgICAgICByZXQgPSBiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICop
ICYgYWRkciwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpOwoKICAgICAg
ICAgICAgICAgIGlmKHJldCA8IDApIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgX2xvZygiYmluZCA6ICVzIiwgc3RyZXJyb3IoZXJybm8pKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgc2xlZXAoMSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX3NvY2tldChs
aXN0ZW5fc29ja2V0KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgIF9sb2coIkJpbmQgT0sgb24gcG9ydCAlZCIs
IHBvcnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
cmV0ID0gbGlzdGVuKGZkLCAxKTsKCiAgICAgICAgaWYocmV0ICE9IDApIHsK
ICAgICAgICAgICAgICAgIF9sb2coImxpc3RlbiA6ICVzIiwgc3RyZXJyb3Io
ZXJybm8pKTsKICAgICAgICAgICAgICAgIGNsb3NlX3NvY2tldF9mZChmZCk7
CiAgICAgICAgICAgICAgICByZXR1cm4gTk9UX09LOwogICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICBfbG9nKCJMaXN0ZW4gT0sgb24gcG9ydCAl
ZCIsIHBvcnQpOwogICAgICAgIH0KCiAgICAgICAgd2hpbGUoMSkgewogICAg
ICAgICAgICAgICAgYWRkcmxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJf
aW4pOwogICAgICAgICAgICAgICAgcGZkLmZkID0gZmQ7CiAgICAgICAgICAg
ICAgICBwZmQuZXZlbnRzID0gUE9MTElOIHwgUE9MTFBSSTsKICAgICAgICAg
ICAgICAgIHBmZC5yZXZlbnRzID0gMDsKICAgICAgICAgICAgICAgIHJjID0g
cG9sbCgmcGZkLCAxLCAyMDAwKTsKCiAgICAgICAgICAgICAgICBpZihyYyA9
PSAtMSkgewogICAgICAgICAgICAgICAgICAgICAgICBfbG9nKCJwb2xsIDog
JXMiLCBzdHJlcnJvcihlcnJubykpOwogICAgICAgICAgICAgICAgICAgICAg
ICBzbGVlcCgxKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZihwZmQucmV2
ZW50cyA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBuZXdfc29j
ayA9IGFjY2VwdChmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmIGFkZHIsICZh
ZGRybGVuKTsKCiAgICAgICAgICAgICAgICBpZihuZXdfc29jayA8IDApIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgX2xvZygiYWNjZXB0IDogJXMiLCBz
dHJlcnJvcihlcnJubykpOwogICAgICAgICAgICAgICAgICAgICAgICBjbG9z
ZV9zb2NrZXRfZmQobmV3X3NvY2spOwogICAgICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGxpbmdlciBsaW5n
ZXI7CiAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcHRpb247CiAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1ldmFsIHdhaXRfdGltZW91
dDsKICAgICAgICAgICAgICAgICAgICAgICAgX2xvZygiVGhlIGNsaWVudCAl
cyBhcmUgIGNvbm5lY3RlZCIsIGluZXRfbnRvYShhZGRyLnNpbl9hZGRyKSk7
CgkJCXJldCA9IGNyZWF0ZV90aHJlYWQoTlVMTCwgIHNlcnZlcnRocmVhZCwg
KHZvaWQgKikgbmV3X3NvY2ssIDEpOwoKCQkJaWYocmV0IDwgMCkgewoJCQkJ
X2xvZygiSW1wb3NzaWJsZSBkZSBkZW1hcnJlciBsZSB0aHJlYWQgY2xpZW50
IHN1ciBsZSBwb3J0ICVkIiwgcG9ydCk7CgkJCQljbG9zZV9zb2NrZXRfZmQo
bmV3X3NvY2spOwoJCQl9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQoK
ICAgICAgICByZXR1cm4gTk9UX09LOwp9Cg==

--bcaec51b1ba7624f7304a158593d
Content-Type: text/x-csrc; charset=US-ASCII; name="client.c"
Content-Disposition: attachment; filename="client.c"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gmq6u8oi1

I2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lzL3NvY2tldC5o
PgojaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiNpbmNsdWRlIDxuZXRpbmV0L2lu
Lmg+CiNpbmNsdWRlIDxuZXRpbmV0L2lwLmg+CiNpbmNsdWRlIDxuZXRpbmV0
L3RjcC5oPgojaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CiNpbmNsdWRlIDxuZXRk
Yi5oPgojaW5jbHVkZSA8c3lzL3VuLmg+CiNpbmNsdWRlIDxlcnJuby5oPgoj
aW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxwdGhyZWFkLmg+CiNpbmNs
dWRlIDxmY250bC5oPgojaW5jbHVkZSA8cG9sbC5oPgojaW5jbHVkZSA8c3Rk
bGliLmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkYXJnLmg+
CgojZGVmaW5lIHBvcnQgODA4MgojZGVmaW5lIE9LCTAKI2RlZmluZSBOT1Rf
T0sJKCFPSykKCmludCBtYWluKHZvaWQpCnsKICAgICAgICBzdHJ1Y3Qgc29j
a2FkZHJfaW4gYWRkcjsKICAgICAgICBpbnQgc29jazsKICAgICAgICBzb2Nr
bGVuX3QgYWRkcmxlbjsKCXN0cnVjdCBob3N0ZW50ICpoOyAKCWludCByZXQ7
CgpzdGFydDoKCiAgICAgICAgbWVtc2V0KChjaGFyICopJmFkZHIsICcwJywg
c2l6ZW9mKGFkZHIpKTsKICAgICAgICBhZGRyLnNpbl9mYW1pbHkgPSBBRl9J
TkVUOwogICAgICAgIGFkZHIuc2luX3BvcnQgPSBodG9ucyhwb3J0KTsKICAg
ICAgICBoID0gZ2V0aG9zdGJ5bmFtZSgiMTI3LjAuMC4xIik7CgltZW1jcHko
KGNoYXIgKikgJiAoYWRkci5zaW5fYWRkciksIGgtPmhfYWRkciwgaC0+aF9s
ZW5ndGgpOwoJc29jayA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwg
MCk7CgoJcmV0ID0gY29ubmVjdChzb2NrLCAoc3RydWN0IHNvY2thZGRyICop
ICYgYWRkciwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpOwoKCWlmIChy
ZXQgPT0gMCkKCXsKCQl3cml0ZShzb2NrLCAiYSIsIDEpOwoJfQoJY2xvc2Uo
c29jayk7Cglnb3RvIHN0YXJ0Owp9Cg==


--bcaec51b1ba7624f7304a158593d
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
--bcaec51b1ba7624f7304a158593d--

- Raw text -


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