GimsMail writes:
I have tried creating a polling object that runs a loop in a thread and does the work I want it to do. I do this with a Zope Object inheriting from SimpleItem.SimpleItem. I invoke this object's run method in a thread with thread.start_new_thread(self.run,()). Zope doesn't seem too happy if I inherit from SimpleItem.SimpleItem and threading.Thread at the same time! You cannot access a persistent object from a different thread than it was loaded in.
You can do the following: * pass the object path into your thread method: "path" * Inside the thread use: from Zope import app; root= app() object= app.unrestrictedTraverse(path) Now, use "object" as you like. If it changes something, do not forget to call "get_transaction().commit()". Please read the "zodb3" documentation. Otherwise, you will meat more surprises... Dieter