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