[Haskell-cafe] Number of outstanding messages in Chan or TChan

Joel Reymont joelr1 at gmail.com
Tue Dec 6 09:09:03 EST 2005

On Dec 6, 2005, at 1:47 PM, Bulat Ziganshin wrote:

> either
> 1) use MVars/TMVars instead of Channels. in any case your logging
> thread must consume data not slower than other channels produce then.
> in fact, using Chan have meaning only to smooth temporary speed
> differences between different threads. are you really need this??

This makes total sense for the logger thread. I will implement this.

> 2) i hope that you already replaced passing a Chan to subroutines with
> passing an actions that read/write this Chan. in this case you can go
> further and add to this actions incrementing/decrementing MVar
> counter. but even without tests it's evident that 1000 producer  
> threads
> will get 1000 times more attention than 1 consumer thread if you don't
> have any restrictions on producing and consuming data.

The problem is that I have hundreds of other network client threads
that do not directly read from a socket. They communicate through  
TChans instead.
I believe they block someplace and I'm trying to troubleshoot this.  
Of course
moving the logger to use TMVars instead of TChan might immediately solve
my problems.

	Thanks, Joel


More information about the Haskell-Cafe mailing list