2016-04-11 7 views
3

Warum lokale Namen (registriert mit erlang: Registrieren/2) nur Atome und nicht willkürlich Begriff sein, aber die globalen Namen könnten alles sein (registrierte mit global: register_name/2,3).Erlang globale und lokale Namen

Typ spec von gen.erl:

-type emgr_name() :: {'local', atom()} 
        | {'global', term()} 
        | {'via', Module :: module(), Name :: term()}. 

Warum gibt es keine Möglichkeit, einen lokalen gen_server einen beliebigen Namen geben?

Antwort

3

Weil lokale Registrierung Merkmal von Erlang ist (geschrieben auf C). Aber globale Registrierung ist Feature des globalen Moduls von OTP. es ist nur eine Erweiterung des Standardverhaltens.

Verwandte Themen