On Fri, 3 Mar 2006, Matthew O'Connor wrote:
Python 2.3.5 has that patch applied.
-matthew
That is most excellent news. This means that Python 2.3.5 can be supported
with PyLucene. One still needs to build PyLucene for that version since the
binaries I produce are all built with Python 2.4 header files.
Andi..
Andi Vajda [EMAIL PROTECTED] said:
On Fri, 3 Mar 2006, Bill Janssen wrote:
There was a threading issue in Python 2.3 that would cause deadlocks. It
got
fixed sometime after 2.3.4 and is fixed in 2.4. I don't know if it is
fixed in
2.3.5, it could be. If you're not using threads, you should be fine.
Unfortunately, I am using threads. This is a big deal for Mac users,
as I doubt we'll be free of 2.3.5 till the end of 2007, realistically.
Here's a list of the 4 threading issues fixed in 2.3.5. Was it one of
these?
I don't know if it was one of these but the patch below seemed to have
fixed it. What do the Python 2.3.5 sources say ?
--- threadmodule.c.orig 2004-08-17 12:39:30.664412784 +0100
+++ threadmodule.c 2004-08-17 12:40:16.105504688 +0100
@@ -425,11 +425,10 @@
t_bootstrap(void *boot_raw)
{
struct bootstate *boot = (struct bootstate *) boot_raw;
- PyThreadState *tstate;
+ PyGILState_STATE gstate;
PyObject *res;
- tstate = PyThreadState_New(boot->interp);
- PyEval_AcquireThread(tstate);
+ gstate = PyGILState_Ensure();
res = PyEval_CallObjectWithKeywords(
boot->func, boot->args, boot->keyw);
if (res == NULL) {
@@ -454,8 +453,7 @@
Py_DECREF(boot->args);
Py_XDECREF(boot->keyw);
PyMem_DEL(boot_raw);
- PyThreadState_Clear(tstate);
- PyThreadState_DeleteCurrent();
+ PyGILState_Release(gstate);
PyThread_exit_thread();
}
Andi..
Bill
-------------------
Bug #1055820: Cyclic garbage collection was not protecting against that
calling a live weakref to a piece of cyclic trash could resurrect an
insane mutation of the trash if any Python code ran during gc (via
running a dead object's __del__ method, running another callback on a
weakref to a dead object, or via any Python code run in any other
thread that managed to obtain the GIL while a __del__ or callback was
running in the thread doing gc). The most likely symptom was
"impossible" AttributeEror exceptions, appearing seemingly at random,
on weakly referenced objects. The cure was to clear all weakrefs to
unreachable objects before allowing any callbacks to run.
Bug #875692: Improve signal handling, especially when using threads,
by forcing an early re-execution of PyEval_EvalFrame() "periodic" code
when things_to_do is not cleared by Py_MakePendingCalls().
Bug #993394: A KeyError was being raised by Thread.__delete() for
dummy_threading when called by atexit if an instance of Thread was
created in an interpreter running in -O. The exception was of no
importance and thus is now thrown away if raised.
Bug #754449: threading.Thread will no longer mask exceptions raised
during interpreter shutdown with another exception caused by
attempting to output the initial exception. This fix also includes a
backport of rev. 1.41 from HEAD.
_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev
_______________________________________________
pylucene-dev mailing list
[email protected]
http://lists.osafoundation.org/mailman/listinfo/pylucene-dev