Re: [Zope3-dev] Re: unique intids rationale

2005-11-22 Thread Jean-Marc Orliaguet

j.kartnaller wrote:


This has already been added to the bug collector :
http://www.zope.org/Collectors/Zope3-dev/466

Jürgen

Jean-Marc Orliaguet wrote:



Hi!

what is the rationale between the unique integer ids utility and the 
usage policy?


more specifically: why are newly added objects registered in *all* 
IntIds utilities? It does not make sense if the utility is registered 
locally. If they are local they should not be concerned with objects 
added elsewhere than outside their "scope".


can it be turned off in the application?

regards
/JM



Hi!
It seems to be another problem here, since local intids utilities behave 
like global ones - if I get the code correctly, the same objects are 
registered in *all* intids utilities. At some point this leads to race 
conditions, when objects have not yet been created or they get deleted, 


regards
/JM

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: unique intids rationale

2005-11-22 Thread j.kartnaller

This has already been added to the bug collector :
http://www.zope.org/Collectors/Zope3-dev/466

Jürgen

Jean-Marc Orliaguet wrote:


Hi!

what is the rationale between the unique integer ids utility and the 
usage policy?


more specifically: why are newly added objects registered in *all* 
IntIds utilities? It does not make sense if the utility is registered 
locally. If they are local they should not be concerned with objects 
added elsewhere than outside their "scope".


can it be turned off in the application?

regards
/JM

.../Zope3/src/zope/app/intid/__init__.py

def addIntIdSubscriber(ob, event):
   """A subscriber to ObjectAddedEvent
Registers the object added in all unique id utilities and fires
   an event for the catalogs.
   """
   utilities = 
tuple(zapi.getAllUtilitiesRegisteredFor(IIntIds))

   if utilities: # assert that there are any utilites
   key = IKeyReference(ob, None)
   # Register only objects that adapt to key reference
   if key is not None:
   for utility in utilities:
   utility.register(key)


___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com