On Tue, 13 Aug 2013 11:06:51 +0900 Arnaud Fontaine <arnaud.fonta...@nexedi.com> wrote: > Hi, > > Armin Rigo <ar...@tunes.org> writes: > > On Mon, Aug 12, 2013 at 9:39 AM, Arnaud Fontaine > > <arnaud.fonta...@nexedi.com> wrote: > >> Thread 1 is trying to import a module 'foo.bar' (where 'foo' is a > >> package containing dynamic modules) handled by Import Hooks I > >> implemented, so import lock is acquired before even running the hooks > >> (Python/import.c:PyImport_ImportModuleLevel()). Then, these import > >> hooks try to load objects from ZODB and a request is sent and handled > >> by another thread (Thread 2) which itself tries to import another > >> module. > > > > A quick hack might be to call imp.release_lock() and > > imp.acquire_lock() explicitly, from your import hook code, around > > calls to ZODB. > > I suggested the same in my initial email, but I was wondering if there > could be any issue by releasing the lock in find_module()/load_module() > until the module is actually added to sys.modules.
Well, you are obviously on your own with such hacks. There is a reason the lock exists. Regards Antoine. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com