On Tue, Jan 03, 2006 at 12:07:43AM +0000, Joel Reymont wrote: > > On Jan 2, 2006, at 9:20 PM, Chris Kuklewicz wrote: > > > This makes me ponder one of the things that Joel was trying to do: > >efficiently pass data to a logging thread. It may be that a custom > >channel would be helpful for that as well. > > I have not taken the time to analyze the Chameneos code but need to > point out that my problem was not with efficiently passing data to > the logging thread. The issue was with data accumulating in the > channel and the logger thread not reading it out fast enough. > > The TChan implementation is a single-linked list implemented on top > of TVar's. That would seem pretty efficient to me.
It's simple and efficient but does nothing to prevent the channel from growing out of control. A slightly modified (custom) channel based on TChan, but enforcing a maximum size (blocking on insert if the channel is too full), probably would have solved the problem. I assume that Erlang either does that or increases the priority of threads with large event queues, or both. Thanks, Matt Harden _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
