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

Reply via email to