erl_nif_thread和erlang进程通信

时间:2013-09-26 04:52:06

标签: erlang erlang-nif

我们可以与创建的erl_nif线程和正常的erlang进程通信吗?我们可以使用nif_send从nif线程向erlang进程发送消息,但是nif线程可以从任何erlang进程接收消息,就像普通的erlang进程一样吗?

1 个答案:

答案 0 :(得分:4)

不,使用enif_thread_create创建的主题不是Erlang流程,无法接收消息

您可能正在尝试使用NIF实现太多功能,可能会考虑编写linked in driver代替,它可以发送消息并从Erlang接收消息。

或者,您可以在本机线程中使用条件变量和/或管道来等待每当收到您期望的消息时由模拟器调用的NIF函数生成的事件。实际上,与驱动程序中的链接不同,您无法使用the select interface from the emulator