diff options
author | Benjamin Peterson <benjamin@python.org> | 2009-10-09 20:36:25 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2009-10-09 20:36:25 (GMT) |
commit | fe51a1f204b6e087acb19b13a5fcd7aa20dc816e (patch) | |
tree | b81423e6f10fe3e5db98204144af3109a852a26b | |
parent | c70614fdced11a47b60be188b16888e4b4c2749a (diff) | |
download | cpython-fe51a1f204b6e087acb19b13a5fcd7aa20dc816e.zip cpython-fe51a1f204b6e087acb19b13a5fcd7aa20dc816e.tar.gz cpython-fe51a1f204b6e087acb19b13a5fcd7aa20dc816e.tar.bz2 |
rollback the merge of r74524 because it causes failures in test_multiprocessing
-rw-r--r-- | Doc/library/weakref.rst | 3 | ||||
-rw-r--r-- | Modules/_threadmodule.c | 9 |
2 files changed, 2 insertions, 10 deletions
diff --git a/Doc/library/weakref.rst b/Doc/library/weakref.rst index d4751b1..9aaa58a 100644 --- a/Doc/library/weakref.rst +++ b/Doc/library/weakref.rst @@ -61,9 +61,6 @@ instances, functions written in Python (but not in C), instance methods, sets, frozensets, file objects, :term:`generator`\s, type objects, sockets, arrays, deques, and regular expression pattern objects. -.. versionchanged:: 2.7 - Added support for thread.lock and threading.Lock. - Several built-in types such as :class:`list` and :class:`dict` do not directly support weak references but can add support through subclassing:: diff --git a/Modules/_threadmodule.c b/Modules/_threadmodule.c index 4169698..744e94d 100644 --- a/Modules/_threadmodule.c +++ b/Modules/_threadmodule.c @@ -3,7 +3,6 @@ /* Interface to Sjoerd's portable C thread library */ #include "Python.h" -#include "structmember.h" /* offsetof */ #ifndef WITH_THREAD #error "Error! The rest of Python is not compiled with thread support." @@ -21,15 +20,12 @@ static PyObject *ThreadError; typedef struct { PyObject_HEAD PyThread_type_lock lock_lock; - PyObject *in_weakreflist; } lockobject; static void lock_dealloc(lockobject *self) { assert(self->lock_lock); - if (self->in_weakreflist != NULL) - PyObject_ClearWeakRefs((PyObject *) self); /* Unlock the lock so it's safe to free it */ PyThread_acquire_lock(self->lock_lock, 0); PyThread_release_lock(self->lock_lock); @@ -144,12 +140,12 @@ static PyTypeObject Locktype = { 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT, /*tp_flags*/ + Py_TPFLAGS_DEFAULT, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ - offsetof(lockobject, in_weakreflist), /*tp_weaklistoffset*/ + 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ lock_methods, /*tp_methods*/ @@ -163,7 +159,6 @@ newlockobject(void) if (self == NULL) return NULL; self->lock_lock = PyThread_allocate_lock(); - self->in_weakreflist = NULL; if (self->lock_lock == NULL) { PyObject_Del(self); self = NULL; |