[nanomsg] Re: Erlang nanomsg driver

  • From: Steve Vinoski <vinoski@xxxxxxxx>
  • To: nanomsg <nanomsg@xxxxxxxxxxxxx>
  • Date: Tue, 7 Oct 2014 23:31:43 -0400

Not sure why you would choose to use a NIF and dirty schedulers for this,
as 1) the Erlang driver facility was designed specifically for this kind of
problem, and 2) I'm the person who wrote the dirty schedulers for the
Erlang VM, and so I feel pretty confident saying they're the wrong approach
for this problem because you end up having to reimplement what the driver
API already gives you.

--steve


On Tue, Oct 7, 2014 at 10:58 PM, Jihyun Yu <yjh0502@xxxxxxxxx> wrote:

> Just FYI, I also made erlang nanomsg bindings with erlang NIF & dirty
> schedulars.
>
> https://github.com/yjh0502/nanomsg-erlang
>
> Biggest issue I encountered while implementing binding is abort() from
> nanomsg library. Nanomsg library calls abort() when it detects invalid or
> unexpected state [1], and It will kill erlang VM without giving chance to
> recover error.
>
> [1] https://github.com/nanomsg/nanomsg/issues/307
>
>
>
> On Wed, Oct 8, 2014 at 11:41 AM, Steve Vinoski <vinoski@xxxxxxxx> wrote:
>
>> I've built an Erlang port driver around the nanomsg C library, available
>> here:
>>
>> https://github.com/basho/enm
>>
>> It's new and so it still lacks some features, may still undergo API
>> changes, etc. It's currently based on a recent commit of nanomsg (742e46d).
>>
>> Of course it would also be possible to reimplement nanomsg capabilities
>> and semantics in pure Erlang, and this effort does not preclude that, but I
>> figured wrapping the C library was a faster and more easily maintainable
>> way to let Erlang applications use nanomsg.
>>
>> Feedback, issues, and pull requests welcomed.
>>
>> --steve
>>
>
>

Other related posts: