This is the mail archive of the
mailing list for the Cygwin project.
Re: [64bit] python3 vs. threads
- From: "Yaakov (Cygwin/X)" <yselkowitz at users dot sourceforge dot net>
- To: cygwin-apps at cygwin dot com
- Date: Tue, 30 Jul 2013 20:52:55 -0500
- Subject: Re: [64bit] python3 vs. threads
- References: <51AD6D64 dot 6040502 at users dot sourceforge dot net> <51F84436 dot 9090106 at users dot sourceforge dot net>
On 2013-07-30 17:54, Yaakov (Cygwin/X) wrote:
On 2013-06-03 23:30, Yaakov (Cygwin/X) wrote:
As part of the 64bit bootstrap process, I packaged python3, but had to
configure it --without-threads due to a runtime error.
I think I tracked down the source of the problem:
The PyThread TLS APIs, added in 3.2 via issue 9786 (namely,
PyThread_*_key and PyThread_*_key_value in Include/pythread.h and
Python/thread_pthread.h) assume sizeof(pthread_key_t) == sizeof(int).
However, on x86_64-cygwin, pthread_key_t is a pointer and so the native
calls fail when passed the incorrect values.
As for fixing it, we could s/int/long/g those APIs, but I'm not sure
what the ramifications of that might be. Can you think of a better
I have patchsets ready for 2.7.5 (to fix the parsetuple issue) and 3.2.5
in Ports git; see 3.2-thread-cygwin64.patch for my proposed solution,
which would have to be rebased to a newer version and expanded to all
the other platform-specific implementations before pushing upstream.
If you're okay with these, I have packages ready for x86_64.