Semantic Monitors: a proposal

Guilherme Andrade g@REDACTED
Wed Feb 17 20:29:01 CET 2021


On Wed, 17 Feb 2021 at 07:07, Lukas Larsson <lukas@REDACTED> wrote:

> Hello!
>
>
> On Tue, Feb 16, 2021 at 7:23 PM Guilherme Andrade <g@REDACTED> wrote:
>
>> Hello list,
>>
>> I've spent years writing boilerplate for associating process monitors
>> with other identifiers and react appropriately (and performantly) when one
>> of those processes terminates.
>>
>> But: what if we could attach data to a monitor and get it back in its
>> DOWN message?
>>
>> You'd optionally associate data to a monitor when creating it:
>>     * Ref = monitor(process, Pid, [{data, {user_id, <<"12345">>}}])
>>
>> And you'd get it back upon the monitor being triggered:
>>     * {'DOWN', Ref, process, Pid, Reason, {user_id, <<"12345">>}}
>>
>> Regular monitors would still work the same way and keep the current DOWN
>> message format - nothing would break.
>>
>> I've explored this concept using NIFs and published the result to GitHub:
>>     * https://github.com/g-andrade/vaktari
>>
>> Is this a good idea? If so, would it be feasible to implement it in OTP?
>> Should there be an EEP first? I'd be willing to contribute to either.
>>
>
> You are in luck!
>
> PR-2735[1] aka EEP-53[2] adds erlang:monitor/3[3] which can be used to do
> what you want. It will be released in Erlang/OTP 24.
>

This is great news! Can't wait to use it :-)



>
> [1]: https://github.com/erlang/otp/pull/2735
> [2]: https://github.com/erlang/eep/blob/master/eeps/eep-0053.md
> [3]:
> https://erlang.org/~rickard/OTP-16718/erts-11.1.1/doc/html/erlang.html#monitor-3
>
>
>>
>> Any input is welcome.
>>
>> Cheers!
>>
>> --
>> Guilherme
>>
>

-- 
Guilherme
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210217/bfd08f21/attachment.htm>


More information about the erlang-questions mailing list