delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2017/03/24/20:46:56

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=fdet/
Lp87uxG0Zq20DmX/SpANqYkVxJ1RZVP+QWU9dk1LmC4Gs19u36qkv2GBeJfoeajn
ULGTNDC6Vs3VpLWZh9tRjks8gXC9xJbOmqqOt/iPwlW5q+S7lk8milPdSQKfMxxo
lpUygfeZPLRb9g7uPavO0TSi3uPKcJttvDKC1k=
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=ABGG/qhTeuP
4L7QA0WpbeyX8GIk=; b=XwpqlAEZ+na3peTr4pWkIPzsYTcXZ/JwfXBsTldsLNe
+j13estUsTdUBL5hcwBQ5wfCKhALQ62URnWabNXwitBHZKFyBZnmpRhsc/VCi2AV
rJd10PL/ETMG3uYNv/zMODWBqV6Pn0rjZUuuOj9FAidS5x/Jkqt1eLh6Hjmmbu2E
=
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=-11.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_1,GIT_PATCH_2 autolearn=ham version=3.3.2 spammy=HDKIM-Filter:v2.10.3, H*c:HHHH, wow64
X-HELO: conssluserg-04.nifty.com
DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-04.nifty.com v2P0kUTW012182
X-Nifty-SrcIP: [175.179.23.201]
Date: Sat, 25 Mar 2017 09:46:38 +0900
From: Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
To: cygwin AT cygwin DOT com
Subject: Re: [ANNOUNCEMENT] python3 3.6.1-2 (x86 only)
Message-Id: <20170325094638.5209c67a5efef02f51a99e75@nifty.ne.jp>
In-Reply-To: <20170324182610.8B2F9440070@conbox-039.nifty.com>
References: <20170324182610 DOT 8B2F9440070 AT conbox-039 DOT nifty DOT com>
Mime-Version: 1.0
X-IsSubscribed: yes

--Multipart=_Sat__25_Mar_2017_09_46_38_+0900_hvT=ere30hmotPo3
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hello,

On Fri, 24 Mar 2017 13:22:56 -0500 Yaakov Selkowitz wrote:
> This release fixes thread allocation issues reported with WoW64 on some 
> versions of Windows.  As this only affects 32-bit Cygwin, the 64-bit build
> has not been updated.

Thanks for quick fix. I have confirmed the issue has been fixed.

However, I have found another prombem related this issue.

Python API PyThread_create_key() in the latest release of 64-bit version
returns an invalid key value, which is truncated into int size.

To confirm this, execute following script:
--- from here ---
from ctypes import pythonapi
key = pythonapi.PyThread_create_key()
res1 = pythonapi.PyThread_set_key_value(key, 5555)
res2 = pythonapi.PyThread_get_key_value(key)
res3 = pythonapi.PyThread_delete_key(key)
print(key,res1,res2,res3)
--- to here ---

Expected result is:
1 0 5555 0

'1' in the first column can be any other value, but the remaining columns
must be '0 5555 0'.

However, result of 64-bit version is:
1145600 -1 0 22

This means PyThread_set_key_value(), PyThread_get_key_value() and
PyThread_delete_key() fail to access key 1145600. This is because the key value is invalid. It seems that the 64 bit key value is truncated into
32-bit value.

To fix this issue as well as the issue on WOW, I have made two patches
attached, based on two different ideas.

pthread-cygwin-1.patch:
The higher part of key value is saved, and only lower part is handed
to python API. The key value is recombined with higher part when it
handed to cygwin pthread functions.
Smaller memory and little bit faster.

pthread-cygwin-2.patch:
The key value returned by cygwin pthread_key_create() is saved in
table, and index of the table is handed to python API as a key.
The key value is converted via the table when it handed to cygwin
pthread functions.
Larger memory but steady operation.

I prefer pthread-cygwin-2.patch. What do you think?

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

--Multipart=_Sat__25_Mar_2017_09_46_38_+0900_hvT=ere30hmotPo3
Content-Type: application/octet-stream;
 name="pthread-cygwin-1.patch"
Content-Disposition: attachment;
 filename="pthread-cygwin-1.patch"
Content-Transfer-Encoding: base64

LS0tIG9yaWdzcmMvUHl0aG9uLTMuNi4xL1B5dGhvbi90aHJlYWRfcHRocmVh
ZC5oCTIwMTctMDMtMjUgMDg6MTA6MzAuNzg0NjAxODAwICswOTAwCisrKyBz
cmMvUHl0aG9uLTMuNi4xL1B5dGhvbi90aHJlYWRfcHRocmVhZC5oCTIwMTct
MDMtMjUgMDg6NDM6MTIuMDcwOTA2OTAwICswOTAwCkBAIC02MDMsNiArNjAz
LDY3IEBACiAKICNkZWZpbmUgUHlfSEFWRV9OQVRJVkVfVExTCiAKKyNpZmRl
ZiBfX0NZR1dJTl9fCisvKiBDeWd3aW4gcHRocmVhZCBUTFMga2V5IHR5cGUg
aXMgYSBwb2ludGVyLCB3aGVyZWFzIFB5dGhvbiAzIGFzc3VtZXMKKyAqIGlu
dCB0eXBlLiBTbyB3cmFwcGVyIGZ1bmN0aW9ucyBhcmUgdXNlZCBpbnN0ZWFk
LgorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBrZXliYXNlID0gVUxPTkdf
TUFYOworCitzdGF0aWMgaW50CitweV9wdGhyZWFkX2tleV9jcmVhdGUodW5z
aWduZWQgbG9uZyAqa2V5LCB2b2lkKCpmdW5jKSh2b2lkICopKQoreworICAg
IGludCByZXQ7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBtYXNrID0gVUxP
TkdfTUFYICYgfih1bnNpZ25lZCBsb25nKUlOVF9NQVg7CisgICAgdW5zaWdu
ZWQgbG9uZyBrZXliYXNlX25ldzsKKyAgICBwdGhyZWFkX2tleV90IGtleV9j
eWc7CisgICAgcmV0ID0gcHRocmVhZF9rZXlfY3JlYXRlKCZrZXlfY3lnLCBm
dW5jKTsKKyAgICBpZiAocmV0KSB7CisgICAgICAgIC8qIEVycm9yICovCisg
ICAgICAgICprZXkgPSAwOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0K
KyAgICBrZXliYXNlX25ldyA9ICh1bnNpZ25lZCBsb25nKWtleV9jeWcgJiBt
YXNrOworICAgIC8qIElmIGJhc2UgYWRkcmVzcyBpcyBkaWZmZXJlbnQsIHRy
ZWF0IGFzIGVycm9yICovCisgICAgaWYgKGtleWJhc2UgIT0gVUxPTkdfTUFY
ICYmIGtleWJhc2VfbmV3ICE9IGtleWJhc2UpIHsKKyAgICAgICAgcHRocmVh
ZF9rZXlfZGVsZXRlKGtleV9jeWcpOworICAgICAgICAqa2V5ID0gMDsKKyAg
ICAgICAgZXJybm8gPSBFTk9NRU07CisgICAgICAgIHJldHVybiBFTk9NRU07
CisgICAgfQorICAgIGtleWJhc2UgPSBrZXliYXNlX25ldzsKKyAgICAqa2V5
ID0gKHVuc2lnbmVkIGxvbmcpa2V5X2N5ZyAmIH5tYXNrOworICAgIHJldHVy
biAwOworfQorCitzdGF0aWMgaW50CitweV9wdGhyZWFkX2tleV9kZWxldGUo
dW5zaWduZWQgbG9uZyBrZXkpCit7CisgICAgcHRocmVhZF9rZXlfdCBrZXlf
Y3lnID0gKHB0aHJlYWRfa2V5X3QpKGtleWJhc2UgfCBrZXkpOworICAgIHJl
dHVybiBwdGhyZWFkX2tleV9kZWxldGUoa2V5X2N5Zyk7Cit9CisKK3N0YXRp
YyBpbnQKK3B5X3B0aHJlYWRfc2V0c3BlY2lmaWModW5zaWduZWQgbG9uZyBr
ZXksIGNvbnN0IHZvaWQgKnApCit7CisgICAgcHRocmVhZF9rZXlfdCBrZXlf
Y3lnID0gKHB0aHJlYWRfa2V5X3QpKGtleWJhc2UgfCBrZXkpOworICAgIHJl
dHVybiBwdGhyZWFkX3NldHNwZWNpZmljKGtleV9jeWcsIHApOworfQorCitz
dGF0aWMgdm9pZCAqCitweV9wdGhyZWFkX2dldHNwZWNpZmljKHVuc2lnbmVk
IGxvbmcga2V5KQoreworICAgIHB0aHJlYWRfa2V5X3Qga2V5X2N5ZyA9IChw
dGhyZWFkX2tleV90KShrZXliYXNlIHwga2V5KTsKKyAgICByZXR1cm4gcHRo
cmVhZF9nZXRzcGVjaWZpYyhrZXlfY3lnKTsKK30KKworI2RlZmluZSBwdGhy
ZWFkX2tleV90IHVuc2lnbmVkIGxvbmcKKyNkZWZpbmUgcHRocmVhZF9rZXlf
Y3JlYXRlIHB5X3B0aHJlYWRfa2V5X2NyZWF0ZQorI2RlZmluZSBwdGhyZWFk
X2tleV9kZWxldGUgcHlfcHRocmVhZF9rZXlfZGVsZXRlCisjZGVmaW5lIHB0
aHJlYWRfc2V0c3BlY2lmaWMgcHlfcHRocmVhZF9zZXRzcGVjaWZpYworI2Rl
ZmluZSBwdGhyZWFkX2dldHNwZWNpZmljIHB5X3B0aHJlYWRfZ2V0c3BlY2lm
aWMKKworI2VuZGlmIC8qIF9fQ1lHV0lOX18gKi8KKwogbG9uZwogUHlUaHJl
YWRfY3JlYXRlX2tleSh2b2lkKQogewpAQCAtNjEwLDE1ICs2NzEsMTIgQEAK
ICAgICBpbnQgZmFpbCA9IHB0aHJlYWRfa2V5X2NyZWF0ZSgma2V5LCBOVUxM
KTsKICAgICBpZiAoZmFpbCkKICAgICAgICAgcmV0dXJuIC0xTDsKLSNpZm5k
ZWYgX19DWUdXSU5fXwotICAgIC8qIEN5Z3dpbiBwdGhyZWFkIHR5cGVzIGFy
ZSBwb2ludGVycywgd2hpY2ggbWF5ICJvdmVyZmxvdyIgc2lnbmVkIGxvbmcg
Ki8KICAgICBpZiAoa2V5ID4gTE9OR19NQVgpIHsKICAgICAgICAgLyogSXNz
dWUgIzIyMjA2OiBoYW5kbGUgaW50ZWdlciBvdmVyZmxvdyAqLwogICAgICAg
ICBwdGhyZWFkX2tleV9kZWxldGUoa2V5KTsKICAgICAgICAgZXJybm8gPSBF
Tk9NRU07CiAgICAgICAgIHJldHVybiAtMUw7CiAgICAgfQotI2VuZGlmCiAg
ICAgcmV0dXJuIChsb25nKWtleTsKIH0KIAo=

--Multipart=_Sat__25_Mar_2017_09_46_38_+0900_hvT=ere30hmotPo3
Content-Type: application/octet-stream;
 name="pthread-cygwin-2.patch"
Content-Disposition: attachment;
 filename="pthread-cygwin-2.patch"
Content-Transfer-Encoding: base64

LS0tIG9yaWdzcmMvUHl0aG9uLTMuNi4xL1B5dGhvbi90aHJlYWRfcHRocmVh
ZC5oCTIwMTctMDMtMjUgMDg6MTA6MzAuNzg0NjAxODAwICswOTAwCisrKyBz
cmMvUHl0aG9uLTMuNi4xL1B5dGhvbi90aHJlYWRfcHRocmVhZC5oCTIwMTct
MDMtMjUgMDg6NDQ6MjEuOTQ2NTk2NjAwICswOTAwCkBAIC02MDMsNiArNjAz
LDgwIEBACiAKICNkZWZpbmUgUHlfSEFWRV9OQVRJVkVfVExTCiAKKyNpZmRl
ZiBfX0NZR1dJTl9fCisvKiBDeWd3aW4gcHRocmVhZCBUTFMga2V5IHR5cGUg
aXMgYSBwb2ludGVyLCB3aGVyZWFzIFB5dGhvbiAzIGFzc3VtZXMKKyAqIGlu
dCB0eXBlLiBTbyB3cmFwcGVyIGZ1bmN0aW9ucyBhcmUgdXNlZCBpbnN0ZWFk
LgorICovCitzdGF0aWMgcHRocmVhZF9rZXlfdCBrZXlfdGJsW1BUSFJFQURf
S0VZU19NQVhdOworCitzdGF0aWMgaW50CitweV9wdGhyZWFkX2tleV9jcmVh
dGUodW5zaWduZWQgbG9uZyAqa2V5LCB2b2lkKCpmdW5jKSh2b2lkICopKQor
eworICAgIGludCByZXQ7CisgICAgaW50IGk7CisgICAgcHRocmVhZF9rZXlf
dCBrZXlfY3lnOworICAgIHJldCA9IHB0aHJlYWRfa2V5X2NyZWF0ZSgma2V5
X2N5ZywgZnVuYyk7CisgICAgaWYgKHJldCkgeworICAgICAgICAvKiBFcnJv
ciAqLworICAgICAgICAqa2V5ID0gMDsKKyAgICAgICAgcmV0dXJuIHJldDsK
KyAgICB9CisgICAgZm9yIChpPTA7IGk8UFRIUkVBRF9LRVlTX01BWDsgaSsr
KSB7CisgICAgICAgIGlmIChrZXlfdGJsW2ldID09IE5VTEwpIHsKKyAgICAg
ICAgICAgIC8qIFN1Y2NlZWRlZCAqLworICAgICAgICAgICAgKmtleSA9IGk7
CisgICAgICAgICAgICBrZXlfdGJsW2ldID0ga2V5X2N5ZzsKKyAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIHB0aHJlYWRf
a2V5X2RlbGV0ZShrZXlfY3lnKTsKKyAgICAvKiBQVEhSRUFEX0tFWVNfTUFY
IHJlYWNoZWQgKi8KKyAgICAqa2V5ID0gMDsKKyAgICBlcnJubyA9IEVBR0FJ
TjsKKyAgICByZXR1cm4gRUFHQUlOOworfQorCitzdGF0aWMgaW50CitweV9w
dGhyZWFkX2tleV9kZWxldGUodW5zaWduZWQgbG9uZyBrZXkpCit7CisgICAg
aW50IHJldDsKKyAgICBpZiAoa2V5ID49IFBUSFJFQURfS0VZU19NQVggfHwg
a2V5X3RibFtrZXldID09IE5VTEwpIHsKKyAgICAgICAgZXJybm8gPSBFSU5W
QUw7CisgICAgICAgIHJldHVybiBFSU5WQUw7CisgICAgfQorICAgIHJldCA9
IHB0aHJlYWRfa2V5X2RlbGV0ZShrZXlfdGJsW2tleV0pOworICAgIGtleV90
Ymxba2V5XSA9IE5VTEw7CisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGlj
IGludAorcHlfcHRocmVhZF9zZXRzcGVjaWZpYyh1bnNpZ25lZCBsb25nIGtl
eSwgY29uc3Qgdm9pZCAqcCkKK3sKKyAgICBpZiAoa2V5ID49IFBUSFJFQURf
S0VZU19NQVggfHwga2V5X3RibFtrZXldID09IE5VTEwpIHsKKyAgICAgICAg
ZXJybm8gPSBFSU5WQUw7CisgICAgICAgIHJldHVybiBFSU5WQUw7CisgICAg
fQorICAgIHJldHVybiBwdGhyZWFkX3NldHNwZWNpZmljKGtleV90Ymxba2V5
XSwgcCk7Cit9CisKK3N0YXRpYyB2b2lkICoKK3B5X3B0aHJlYWRfZ2V0c3Bl
Y2lmaWModW5zaWduZWQgbG9uZyBrZXkpCit7CisgICAgaWYgKGtleSA+PSBQ
VEhSRUFEX0tFWVNfTUFYIHx8IGtleV90Ymxba2V5XSA9PSBOVUxMKSB7Cisg
ICAgICAgIGVycm5vID0gRUlOVkFMOworICAgICAgICByZXR1cm4gTlVMTDsK
KyAgICB9CisgICAgcmV0dXJuIHB0aHJlYWRfZ2V0c3BlY2lmaWMoa2V5X3Ri
bFtrZXldKTsKK30KKworI2RlZmluZSBwdGhyZWFkX2tleV90IHVuc2lnbmVk
IGxvbmcKKyNkZWZpbmUgcHRocmVhZF9rZXlfY3JlYXRlIHB5X3B0aHJlYWRf
a2V5X2NyZWF0ZQorI2RlZmluZSBwdGhyZWFkX2tleV9kZWxldGUgcHlfcHRo
cmVhZF9rZXlfZGVsZXRlCisjZGVmaW5lIHB0aHJlYWRfc2V0c3BlY2lmaWMg
cHlfcHRocmVhZF9zZXRzcGVjaWZpYworI2RlZmluZSBwdGhyZWFkX2dldHNw
ZWNpZmljIHB5X3B0aHJlYWRfZ2V0c3BlY2lmaWMKKworI2VuZGlmIC8qIF9f
Q1lHV0lOX18gKi8KKwogbG9uZwogUHlUaHJlYWRfY3JlYXRlX2tleSh2b2lk
KQogewpAQCAtNjEwLDE1ICs2ODQsMTIgQEAKICAgICBpbnQgZmFpbCA9IHB0
aHJlYWRfa2V5X2NyZWF0ZSgma2V5LCBOVUxMKTsKICAgICBpZiAoZmFpbCkK
ICAgICAgICAgcmV0dXJuIC0xTDsKLSNpZm5kZWYgX19DWUdXSU5fXwotICAg
IC8qIEN5Z3dpbiBwdGhyZWFkIHR5cGVzIGFyZSBwb2ludGVycywgd2hpY2gg
bWF5ICJvdmVyZmxvdyIgc2lnbmVkIGxvbmcgKi8KICAgICBpZiAoa2V5ID4g
TE9OR19NQVgpIHsKICAgICAgICAgLyogSXNzdWUgIzIyMjA2OiBoYW5kbGUg
aW50ZWdlciBvdmVyZmxvdyAqLwogICAgICAgICBwdGhyZWFkX2tleV9kZWxl
dGUoa2V5KTsKICAgICAgICAgZXJybm8gPSBFTk9NRU07CiAgICAgICAgIHJl
dHVybiAtMUw7CiAgICAgfQotI2VuZGlmCiAgICAgcmV0dXJuIChsb25nKWtl
eTsKIH0KIAo=


--Multipart=_Sat__25_Mar_2017_09_46_38_+0900_hvT=ere30hmotPo3
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=_Sat__25_Mar_2017_09_46_38_+0900_hvT=ere30hmotPo3--

- Raw text -


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