Richard Oudkerk <shibt...@gmail.com> added the comment: Attached is an updated version of Charles-François's reinit_locks.diff.
Changes: * Handles RLock by assuming that if self->count != 0 when we acquire the lock, then the lock must have been reinitialized by PyThread_ReInitLocks(). * Applies existing fork tests for Lock to RLock. * Fixes capitalization issues with PyThread_ReInitLocks()/PyThread_ReinitLocks(). * Defines PyThread_ReInitLocks() to be empty on non-pthread platforms. Note that RLock._is_owned() is unreliable after a fork until RLock.acquire() has been called. Also, no synchronization has been added for the list of locks. Are PyThread_allocate_lock() and PyThread_free_lock() supposed to be safe to call while not holding the GIL? ---------- Added file: http://bugs.python.org/file25776/reinit_locks_2.diff _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue6721> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com