Where is speedup improvements? In code that I found in Pharo 1.1 there is simple iteration by all dictionary items. And I think there is no places for speed improvements because subscribers can subscribers for announcement hierarchy (not concrete class).
Announcer>>announce: anAnnouncement    | announcement |    announcement := anAnnouncement asAnnouncement.    subscriptions ifNil: [ ^ announcement ].    subscriptions keysAndValuesDo: [ :class :actions |       (class handles: announcement)          ifTrue: [ actions valueWithArguments: (Array with: announcement) ] ].    ^ announcement
The #handles: method is not called on each registered handler, but only once per "class". Lukas -- Lukas Renggli www.lukas-renggli.ch