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