Closed GoogleCodeExporter closed 9 years ago
You're right. The conditional compilation is broken. There are no
PYTHON_MAJOR/MINOR_VERSION macros.
I'd assume that the compiler would bark at me for doing this, but it's not.
I tried fixing the macros, and running it through the test-cases for Python 2.5
through 2.7 works.
If you're getting a crash, my initial theory is because of the semantics of
PyArgParseTuple for "t#", which doesn't lock the buffer, hence it's unsafe to
release the Python lock.
Can you send me more details on how you're getting the crashes?
Original comment by arnim...@gmail.com
on 24 May 2012 at 9:31
When I fixed the macros I no longer got the segfaults. My theory is the same as
yours. Do you want a backtrace? I wasn't actually running it with a debug build
of Python or anything. If you fixed the macros I'm confident it's good now.
Original comment by jtolds
on 24 May 2012 at 10:14
The only way to be confident about this is a proper torture test under multiple
threads, and a code review.
The "t#" case is still dangerous, and I'll disable GIL releases for those.
Thanks for your help.
Original comment by arnim...@gmail.com
on 24 May 2012 at 10:22
http://code.google.com/p/py-leveldb/source/detail?r=46 looks awesome and works
for me
Original comment by jtolds
on 24 May 2012 at 10:42
Original issue reported on code.google.com by
jtolds
on 24 May 2012 at 8:59