2014-10-01 4 views
1

NGINX и другие серверы предлагают использовать именованные каналы (mkfifo).Может ли erlang использовать именованные каналы вместо сокетов?

Может ли erlang использовать их вместо портов для взаимодействия nif. Что, если я захочу сделать 70 000 подключений к моему NIF (не судите).

ответ

3

Короче говоря, нет.

Это покрытие находится в Erlang FAQ on opening device files. Это сводится к тому, что трудно/невозможно записывать время выполнения Erlang переносимым способом через Unices (не говоря уже о Windows), чтобы он мог обращаться к вещам, таким как файлы устройств и именованные каналы, без блокировки, по крайней мере, некоторых из них. Эта блокировка испортит «мягкий реальный» характер времени выполнения Erlang.

Что является возможно, чтобы написать программу C, которая взаимодействует со средой выполнения Erlang как «процесс порта», и что программа может общаться через именованный канал (и блок или нет, независимо, не щуря выполнения Erlang).