Philippe, Stef,

That's fine for Seaside, but what about other users of weak collections?  I 
think I have found the weakness (pun intended) in Squeak/Pharo: weaklings do 
only half of what they should do.  They (correctly) do not prevent garbage 
collection of the objects they reference, but they apparently fail to clean up 
after these objects have been finalized.

In Dolphin, the following returns an empty array:

| map |
map := WeakLookupTable new
                at:2 put:String new;
                yourself.
MemoryManager current collectGarbage.
map keys asArray.


Pharo is content to answer nil from #at:put: but still keep the key:

| map |
map := WeakValueDictionary new
                at:2 put:String new;
                yourself.
5 timesRepeat:[ Smalltalk garbageCollect. ].
map keys asArray.

Gary reported a lack of thread saftey in the weak collections almost two years 
ago.  See Mantis #6955.

Bill


-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Philippe 
Marschall
Sent: Sunday, October 25, 2009 9:44 AM
To: [email protected]
Subject: Re: [Pharo-project] Thread-safe collections

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. :)

Yeah, sure. Where again do I store my Seaside sessions? Oh, it's no problem, 
because we use only one worker thread and process requests on after another. 
Geez, problem solved.

Cheers
Philippe


_______________________________________________
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

Reply via email to