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

Dave Smith dizzyd@REDACTED
Mon Jan 17 23:35:49 CET 2011


+1 from me as well. Very useful indeed.

D.

On Mon, Jan 17, 2011 at 1:17 PM, Ahmed Omar <spawn.think@REDACTED> 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
> <ulf.wiger@REDACTED>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 <ulf.wiger@REDACTED>
>> 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:erlang-patches-unsubscribe@REDACTED
>>
>>
>
>
> --
> Best Regards,
> - Ahmed Omar
> http://nl.linkedin.com/in/adiaa
> Follow me on twitter
> @spawn_think <http://twitter.com/#!/spawn_think>
>


More information about the erlang-patches mailing list