[erlang-questions] gen:call({global, Name}, ...)

Geoff Cant <>
Wed Mar 30 03:19:59 CEST 2011


Hi all, I discovered today that gen:call({global, Name}, Label, Request,
Timeout) calls global:safe_whereis_name(Name) to determine the Pid to
look up globally registered names.

global:safe_whereis_name/1 doesn't seem to offer any particular safety
and more importantly, serializes all global name lookups on a node. (Using
global:whereis_name/1 instead is just an ets lookup).

Can we safely make a change like
https://github.com/archaelus/otp/commit/4f6e8a147b3c600eef2dd05f8ce0d51cf9c35383
in gen.erl and improve call time and reduce the load on
global_name_server at a stroke?

This git repo contains the patch I'm thinking of:
git fetch git://github.com/archaelus/otp.git gen_where

Cheers,
-- 
Geoff Cant



More information about the erlang-questions mailing list