Higher order receieve anybody

Vlad Dumitrescu <>
Tue Feb 24 15:59:46 CET 2004


From: "Tony Rogvall" <>
> 
> One idea (tested and implemented) is to use a primitive 
> erlang:signal(Pid,Sig, Info) to send
> a primitive form of messages.  For example message passing could be 
> implemented as
> erlang:signal(Pid, 'MESSAGE', Message). In Multi Pro Erlang we did the 
> signal dispatcher in C code.
> In retrospect we should have implemented a signal dispatcher / 
> signal_handler in Erlang. This way
> all signals (including messages) would be processed by Erlang code. 
> Then one could implement
> the link semantics and message reception etc in Erlang code!
> The signal handler should be called in the context of the receiving 
> process with some kind of
> interrupt semantics (when it comes to receive).
> 
> 
> -module(signal_handler).
> -export([handle_signal/3]).
> 
> handle_signal(From, 'MESSAGE', Message) ->
> erlang:queue_message(Message);
> handle_signal(From, 'LINK', _) ->
>           erlang:add_link(From);
> ...

Super cool! 

/Vlad



More information about the erlang-questions mailing list