[erlang-questions] Difference between enif_schedule_dirty_nif and driver_async?
Dmitry Kolesnikov
dmkolesnikov@REDACTED
Sun Jun 22 16:41:52 CEST 2014
Hello Max,
Are you mixing C ports and C nodes here?
I do agree that C node requires extra effort to handle message marshalling but C port is pure I/O, each port is executed by dedicated OS process.
http://www.erlang.org/doc/tutorial/c_port.html
Would it make sense to you use it?
- Dmitry
On 21 Jun 2014, at 19:23, Max Lapshin <max.lapshin@REDACTED> wrote:
> No, external port is not an easy thing.
>
> I've tried to do so, but stopped: too many work is done in C around packing/unpacking logic and commands. It is much easier to write small C code in C and wrapper in erlang: video is decoded to plain binaries, then coded back into binaries.
>
> Everything is running in a separate node. So transcoder node is a separate unix process with all it's threads. Different streams are transcoded in different processes.
>
> Steve, thanks for the explanation. I didn't knew how many dirty threads are there. There is flag: CPU or IO bound nif. How does this flag affects scheduling?
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
More information about the erlang-questions
mailing list