Pedro Ferreira wrote:
> We have a script that does something like this:
> 
> import os
> from ZEO.ClientStorage import ClientStorage
> 
> if os.fork()==0:
>     print ClientStorage(('localhost',9675))
>     print 'foo'
> else:
>     print 'child: %s' % os.getpid()
> 
> And it worked with ZODB 3.4, but we recently noticed that with 3.8 the
> child process hangs. But if we import ClientStorage only inside the
> process, it seems to work OK.
> Is this supposed to happen? Is there a workaround?

Importing ZEO.ClientStorage creates a thread, AFAIK.  Using threads with 
os.fork() is tricky: you have to ensure the threads get created *after* 
forking.  You've already done that, so is it not sufficient?

Shane
_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to