Driver init failure not detected
Jakob Cederlund på UAB
Tue Oct 30 10:21:28 CET 2001
At 22:27 2001-10-29 +0100, you wrote:
>The init function of struct driver_entry is not used for dynamic
>drivers. See erl_ddll(3) for the details.
This is almost right, and the driver_entry.html is wrong (it's fixed now).
There are pecularities in erl_ddll.html though, the handle is not used, and
you don't need a null_func, NULL is fine to put in the driver_entry (from
R8), etc. This will also be fixed.
The truth is that init is indeed called when a dynamic driver is loaded (it
is done so in the add_driver_entry function in the emulator). But the
return code from init is ignored. My feeling about this is that this is
wrong, and that the return code should be checked, and the emulator (or
erl_ddll) should unload the driver if init returns -1. But for now it
doesn't. You'll have to set some error variable and check this later on.
More information about the erlang-questions