On Thu, Jan 17, 2002 at 11:30:46PM +0100, Dieter Maurer wrote:
Thomas Guettler writes:
On Wed, Jan 16, 2002 at 12:21:45PM -0000, Tim Hicks wrote:
I don't know if this is very efficient/elegant/etc*, but I use it to get a unique id within a folder...
------------- intid = 1 while 1: if hasattr(photo_folder, str(intid)): intid = intid + 1 else:
How thread-safe is this? I Java I would write a syncronise block around i=i+1, because of the following example: It is not thread safe and therefore the later "_setObject" may raise a BadRequest exception due to duplicate ids.
It is therefore better, to use the "_setObject" directly:
while 1: try: self._setObject(str(intid),o); break; except BadRequest: intid= intid+1
Sorry, I don't understand this. Ain't there a easier way to get something like a syncronized block in java? BTW, I found something in lib/python/ZODB/tests/ConflictResolution.py: The PCounter class. I think it is a persistent thread safe counter. thomas -- Thomas Guettler <guettli@thomas-guettler.de> http://www.thomas-guettler.de