The Symbol table is another very useful collection that should be thread-safe. From my experience in VW, getting that to be both fast and thread-safe can be a bit tricky. For example, the debugger should not create symbols while debugging because you could be debugging the critical section of the symbol table internment...
Igor Stasenko wrote: > 2009/10/23 Schwab,Wilhelm K <[email protected]>: > >> Hello all, >> >> I just looked around for thread-safe collections, and found nothing that >> looks like a shared dictionary. The squeak-dev archives contain the >> obligatory newbie posts (wanting all collections to be thread safe) and the >> expected replies, some of which are overly dismissive of the idea. >> Something that protects things like #at:ifAbsentPut: and friends is _really_ >> useful. Am I missing an existing implementation? >> >> > > Imo, there's only one shared collection which is useful - shared queue. :) > If you need more kinds of thread-safe collections, it probably > indicating that the concurrent code (or model) which you designed is > in pretty bad shape. > > Just compare two following snippets: > > 1 to: 100 do: [:i | collection threadSafeAt: i put: something]. > > and: > > semaphore critical: [ 1 to: 100 do: [:i | collection at: i put: something] ]. > > What you think, which one is better? > > > >> Bill >> >> >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> > > > > _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
