David Barbour wrote:
> Create an extra TVar Int for every `chunk` in the array (e.g every 256
> elements, tuned to your update patterns). Read-write it (increment it, be
> sure to force evaluation) just before every time you write an element or
> slice it or slice the array element.

Incrementing and forcing evaluation should not be necessary, a  TVar ()  
should be enough. I would be very much surprised if the internal STM 
machinery compares the actual _values_ of what is inside a TVar, I guess it 
just notes that a read or a write happened. Anyway, this is just a guess, I 
wonder if these details are documented somewhere...

Cheers
Ben


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to