Запуск erlang vm внутри процесса - PullRequest
1 голос
/ 18 апреля 2011

Возможно ли запустить erlang VM внутри процесса?

Я спрашиваю об этом, потому что я пытаюсь использовать некоторый код, используя erl_nif, ведь это действительно круто, но я должен отправить информацию обратно в процесс, который мог бы породить ВМ.Единственный подход, о котором я подумал, - это создать какую-то связь IPC, такую ​​как каналы или чтение из COUT, но это налагает необходимость в некотором протоколе, и было бы здорово, если бы я мог вызывать то, что мне нужно, прямо из ответа функции.

1 Ответ

3 голосов
/ 19 апреля 2011

Даже не упоминая, что Erlang VM управляет потоками ОС и имеет цикл обработки событий, как вы хотите, чтобы он был стабильным и предсказуемым при работе внутри непредсказуемого процесса ОС?Нет, вы не можете запустить Erlang VM внутри процесса ОС.

Думайте об Erlang VM как об операционной системе:

  1. Напишите весь свой код на Erlang;
  2. Используйте NIF / Драйверы портов , только если вам действительно нужна большая скорость.Но имейте в виду - вы находитесь в «режиме ядра» сейчас!
  3. Используйте Порты / Erl_interface / C Узлы , если у вас много коданаписано на другом языке;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...