[erlang-questions] eep: multiple patterns

Ulf Wiger (TN/EAB) <>
Thu May 29 23:21:29 CEST 2008


Dave Peticolas skrev:
> 
> Could you expand on this point for the benefit
 > of the newbies? :)
> I'm not clear about what exactly is the problem
 > with gen_server's message handling and what the
 > better approach is.

The problem is not with gen_server, which is wonderful
for implementing client-server patterns.

The issue is with FIFO message handling, at least when
used for complex state machines. It is very difficult
to write a behavior that lets the user have control
over selective message reception. In selective receive,
you can use only patterns and guards, and neither can
be extended with user-defined logic via a callback
function.

Here are some slides from EUC 2005 on the topic:
http://www.erlang.se/euc/05/1500Wiger.ppt


You could read the thread:
"plain_fsm - for beginners and purists"
from 2004:

http://www.erlang.org/pipermail/erlang-questions/2004-February/011403.html

and then the "higher-order receive anybody" thread:

http://www.erlang.org/pipermail/erlang-questions/2004-February/011514.html



This most likely give you more detail than you asked for. (:

BR,
Ulf W



More information about the erlang-questions mailing list