[erlang-questions] erl_driver vs NIF
Wed Dec 7 10:38:47 CET 2016
Thanks a lot for your response.
On Wed, Dec 7, 2016 at 10:57 AM, Lukas Larsson <> wrote:
> On Tue, Dec 6, 2016 at 9:56 PM, Caragea Silviu <>
>> From what I know the NIF is the fastest way to call c/c++ code from
>> erlang. The disadvantage is that you need to return in under 1 ms in order
>> to make sure the schedulers are not affected.
>> using erl_driver and port_control is not the same ? because based on the
>> documentation this is a sync call that blocks scheduler until the native
>> method returns.
> The same ~1 ms limit exists for port callbacks as nif function calls.
> For some reason there is a rumor circling around that you somehow
> circumvent the limit if you convert your nif code to a linked-in driver.
> This is not the case. The only thing you do by converting the code from a
> nif to linked-in driver is gain access to more tools to partitions the work
> (mostly driver_select, but also some other things like the async thread
> pool), and you possibly make some of the problems that long running native
> code can cause less likely.
> 1: Soon this limit will be removed by the inclusion of enif_select,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions