[ocnae-help] very bad stack leak in cf_gadget scheduler
Status: Pre-Alpha
Brought to you by:
jhwoodyatt
From: james w. <jh...@we...> - 2004-11-14 08:24:22
|
I fixed the very bad stack leak in the Cf_gadget scheduler. The top of the CVS tree has the fix now, and I'll be rolling out a new release with it sometime in the next week. The behavior of the Cf-0.4 gadget scheduler is that all the work between any particular state of the underlying Cf_flow object is stacked up in the evaluation of a single monad that folds the current state into the sequence of bindings without any tail-recursion optimization. It's highly inefficient, actually. In the forthcoming Cf-0.5 gadget scheduler, I've rewritten the entire Cf_gadget module to not fold the Cf_flow object into the low-level monad functions. Instead, the elements of the flow are pipelined through a series of Queues in the scheduling kernel. The new Cf_gadget module has exactly the same signature as the old one. It's just faster and doesn't eat the stack at such a prodigious rate. -- j h woodyatt <jh...@we...> |