[erlang-patches] new patch: Add plugin support for alternative name lookup

Jesper Louis Andersen <>
Tue Jan 18 14:51:13 CET 2011


+1 Here as well.

This sounds like a logical generalization of the OTP behaviours so
registry facilities can be tailored to the application. It may need
more work and polishing in its current form (have not read the code
yet), but the general idea is sound I think.

On Mon, Jan 17, 2011 at 23:35, Dave Smith <> wrote:
> +1 from me as well. Very useful indeed.
>
> D.
>
> On Mon, Jan 17, 2011 at 1:17 PM, Ahmed Omar <> wrote:
>> +1 for that, i see it not only as a good option but a good practice to
>> standardize a common problem i have seen before being solved in different
>> ways
>>
>> On Mon, Jan 17, 2011 at 4:12 PM, Ulf Wiger
>> <>wrote:
>>
>>>
>>> git fetch git://github.com/uwiger/otp.git uw_extending_gen
>>>
>>> Note that I've not updated documentation. If people don't
>>> like the idea, I won't waste my time doing so, but otherwise, I
>>> will follow up with documentation changes as well.
>>>
>>> BR,
>>> Ulf
>>>
>>>
>>> commit 22453671179dadf7204675438cf36edde137f945
>>> Author: Ulf Wiger <>
>>> Date:   Mon Jan 17 15:47:00 2011 +0100
>>>
>>>    Add plugin support for alternative name lookup
>>>
>>>    OTP behaviour instances (gen_server, gen_fsm, gen_event) can currently
>>>    register themselves either locally or globally, and the behaviour
>>>    libraries (including gen.erl) support both addressing methods, as well
>>>    as the normal Pid and {Name, Node}.
>>>
>>>    However, there are alternative registry implementations - e.g. gproc -
>>>    and one can well imagine other ways of locating a behaviour instance,
>>>    e.g. on a node connected only via a TCP tunnel, rather than via
>>>    Distributed Erlang. In all these cases, one needs to write extra code
>>>    to identify the behaviour instance, even though the instance itself
>>>    need not be aware of how it is located.
>>>
>>>    This patch introduces a new way of locating a behaviour instance:
>>>    {via, Module, Name}.
>>>
>>>    Module is expected to export a subset of the functions in global.erl,
>>>    namely:
>>>
>>>    register_name(Name, Pid) -> yes | no
>>>    whereis_name(Name)  -> pid() | undefined
>>>    unregister_name(Name) -> ok
>>>    send(Name, Msg) -> Pid
>>>
>>>    Semantics are expected to be the same as for global.erl
>>>
>>>    This can be used in all places where {global, Name} is accepted.
>>>
>>>    In this patch, the test suites gen_server_SUITE, gen_fsm_SUITE and
>>>    gen_event_SUITE have been extended, but documentation has not been
>>>    updated. This will be done if there is agreement that the idea is
>>>    good.
>>>
>>>
>>> Ulf Wiger, CTO, Erlang Solutions, Ltd.
>>> http://erlang-solutions.com
>>>
>>>
>>>
>>>
>>> ________________________________________________________________
>>> erlang-patches (at) erlang.org mailing list.
>>> See http://www.erlang.org/faq.html
>>> To unsubscribe; mailto:
>>>
>>>
>>
>>
>> --
>> Best Regards,
>> - Ahmed Omar
>> http://nl.linkedin.com/in/adiaa
>> Follow me on twitter
>> @spawn_think <http://twitter.com/#!/spawn_think>
>>
>
> ________________________________________________________________
> erlang-patches (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
>
>



-- 
J.


More information about the erlang-patches mailing list