当 Erlang VM Beam 运行一些用 C 编写的代码时,其他用 Erlang 编写的进程没有被调度。例如:
static ERL_NIF_TERM
nifsleep(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
{
sleep(10);
return enif_make_atom(env, "ok");
}
当你在 Erlang 中调用这个 C 函数时,其他进程没有正常调度。我想知道为什么?这是一个特性还是受实现的限制(即这是一个错误)?
上面代码的地址在:https ://github.com/davisp/sleepy