On Fri, Oct 23, 2009 at 1:38 PM, Igor Stasenko <[email protected]> wrote:

> 2009/10/23 Michael van der Gulik <[email protected]>:
> > A thread-safe collection package could have non-blocking implementations
> of
> > most methods. Writing an object reference into an array should be an
> atomic
> > operation and I assume most collections use Arrays for their
> implementation.
> >
> well, #basicAt:put: using a primitive, so its already atomic
> operation, given than VM doesn't running the code in
> multiple native threads.
>
> So, there is no point in changing something for Arrays, and therefore
> no point to invent a non-blocking.. its already meets our demands.
>
> Lets take a look at collections which doing something more
> sophisticated at #at:put:, like OrderedCollection or Dictionary.
> What kind of non-blocking we can introduce here?
> Dictionary may need to rehash the array due to growth..
> OrderedCollection may also need to grow its storage (if you using
> #add: ) and such operations is far from being atomic. So, what kind of
> non-blocking you can invent here?
>

Checkmate; I can't think of any way of implementing a thread-safe
growing/shrinking collection using only available atomic operations.

There might be a way. I'll sleep on it.

Gulik.

-- 
http://gulik.pbwiki.com/
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to