The "idle-time" gen_server Pattern
Eric Newhuis
enewhuis@REDACTED
Wed Mar 31 03:40:17 CEST 2010
I've been experimenting with using the handle_info(timeout, State) callback.
Push lots of crud into State by way of handle_call, handle_cast, and always return {(no)reply, State, Timeout} where Timeout = 0. Then do CPU-bound processing in handle_info(timeout...
This causes handle_info(timeout...) to be called only when the message queue is empty.
Assumption: handle_call/cast simply append work to do and a single algorithm is more efficient if it knows there are many queued items.
Has anyone tried this? Any hints? Gotchas? I am theoretically aware (?) of the possibility of starvation. But what else?
More information about the erlang-questions
mailing list