Semantic Monitors: a proposal

Lukas Larsson lukas@REDACTED
Wed Feb 17 08:07:18 CET 2021


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.

[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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210217/f9ae5045/attachment.htm>


More information about the erlang-questions mailing list