On Wed, Jan 10, 2001 at 11:37:55PM -0000, Chris Withers wrote:
Chris Withers writes:
....with this class, your_attribute isn't going to play in Persistence, is it? (so I can update it lots without worrying about ZODB size growing... :-)
But, as I understand it, it is only updated in the thread that did the update. Your next request may get a different thread and see a different value.
Huh?
If I change self._v_your_attribute it's only going to get updated in one thread? That's a bit sucky :-S
Doesn't matter in this _particular_ case 'cos this var gets set at the start of every request, but I'm a bit concerned about its general use...
any help is good help :-)
The whole threading spiel in Zope works because of ZODB persistence; any thread accessing an object whose variables have been changed has to retry with a fresh copy from the ODB. But because _v_* variables don't get pickled, another thread will never see them. If you want non-persisting (volatile) variables shared between threads, you'll have to devise your own mechanism for assuring the thread-safety of those variables. -- Martijn Pieters | Software Engineer mailto:mj@digicool.com | Digital Creations http://www.digicool.com/ | Creators of Zope http://www.zope.org/ ---------------------------------------------