On 4/3/11 11:58 PM, Thomas DuBuisson wrote:
Wren,
Glad to see someone is doing a more complete packaging of STM helpers
and derivatives!

I've done a little work on bounded TChans[1] (hackage "bounded-tchan"
package) and I think you should consider a few things:

Ah, somehow I missed that in my searching. I'll give it a look and try to integrate things.


1) Split the reader counter and writer counters as I've done in
bounded-tchan.  This gives 2-5 times better performance (I benchmarked
using Criterion, a single reader, a single writer, and tested channels
with bounds of 10, 100, and 1000 elements).

That's crazy. I wonder why... must be a contention issue...

2) Implement a "tryWriteTBChan" for obvious reasons.

Good idea.

4) Help me figure out a good way to build dupTBChan [2].  It's not easy.

I've yet to figure out a way of doing this that has the right semantics. Perhaps splitting the reader and writer counters will help, though it sounds like you haven't had much luck either.


[2] http://stackoverflow.com/questions/5446484/how-to-add-a-finalizer-on-a-tvar

Have you taken a look at TwilightSTM?

    http://proglang.informatik.uni-freiburg.de/projects/syncstm/
    http://hackage.haskell.org/package/twilight-stm

Since I'm aiming to have stm-chans eventually incorporated into stm proper, that wouldn't work for me, though it sounds like it might solve the ideological question about adding finalizers to TVars

--
Live well,
~wren

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to