[erlang-questions] Is -on_load() still experimental? Anyone using it?

Ferenc Holzhauser <>
Tue Feb 11 00:15:48 CET 2014


Great information, thanks!
Having this documented helps a lot when trying not to break things.

BR,
Ferenc


On 10 February 2014 19:44, Sverker Eriksson
<>wrote:

>
> On 01/28/2014 06:37 PM, Ferenc Holzhauser wrote:
>
>> Thanks. The behaviour is quite neatly described in the documentation. If
>> there is no intention to change it (which is probably the case by now)
>> then
>> perhaps it is also an idea to remove the experimental warning or replace
>> it
>> with a more appropriate one about correct use. The name of the directive
>> is
>> deceptive enough to bring the unwary to ideas and eventually make them
>> break things.
>>
>> If well understood then it can be useful to trigger other things than NIF
>> loading but I also think that the documentation should generally
>> discourage
>> that.
>>
>>
>>
> We will keep on_load as experimental as there are a number of known weak
> points in current semantics which we therefore might want to change but do
> not have time to do for OTP 17.0:
>
> * Doing external call in on_load to the module itself leads to deadlock.
> This could be handled as a special case and let external calls in the
> process doing on_load reach the module itself.
>
> * At upgrade, other processes calling the module get suspended waiting for
> on_load. We could let them reach the "old" module until on_load_succeeds to
> not destroy realtime characteristics.
>
> * At upgrade, no rollback is done if on_load fails.  If we instead delay
> the upgrade until after on_load succeeds the system will not be left in a
> "broken" state.
>
>
> /Sverker, Erlang/OTP
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140211/b9c471e4/attachment.html>


More information about the erlang-questions mailing list