interprocess inlining

Shawn Pearce <>
Thu Dec 5 18:02:08 CET 2002


Thomas Lindgren <> wrote:
> Third: another interesting issue, if we want to handle
> more complex scenarios, is how to handle chained
> sends:
> 
> - A sends to B
> - B sends to C
> - C sends to D

This is the more interesting case to me.  Sometimes a
server is built to just proxy messages to another
process, after perhaps a very mild reformatting.

If the last meaningful op that a server does is
a message send, and it doesn't do any function calls
except the tail recursion to go back to receive,
it might be nice to inline this just to improve
latency.

server(State) ->
	receive
		{request, Payload} ->
			Pid = State#mystate.target,
			Pid ! {dowork, Payload, self()},
			server(State)
	end.

-- 
Shawn.




More information about the erlang-questions mailing list