Extending Functionality: gen_server_ext

Chris Pressey <>
Wed Mar 19 17:13:27 CET 2003


On Fri, 14 Mar 2003 10:28:23 +0100
"Vlad Dumitrescu (EAW)" <> wrote:

> Hi guys,
> 
> I happen to know this Vlad person :-D and he likes to be the fool that
> throws the stone into the lake and let 20 wise people try for a month
> to figure how to pick it back.
> [... gen_server_ext ...]

Hi Vlad,

I think you're really onto something here (for dynamic behaviour at least,
i.e. when you already know for sure you're going to have a process), I
just wanted to clarify how it works.

First, it occurs to me that I don't know any good term for "module which
implements a behaviour", so I'm going to use "behaver" for better or worse
(sounds a lot like "behaviour" when spoken so I'm open to better
suggestions.)

So - my impression is that, when you write a behaver for gen_server_ext,
you typically code it so that when it receives a message it doesn't
understand, it passes it on to the next behaver with
gen_server_ext:next_*()

The other option open seems to be that any unrecognized message would be
passed along to the next behaver in the chain.  (a bit like gen_event?)

I can see why you would want to go with the first method - it's more
flexible and more explicit/predictable - but I think there are some minor
oddities with it being explicit, too - could you accidentally call
next_cast within a call handler? (then what happens?  Is this "legal"?)

-Chris



More information about the erlang-questions mailing list