Erlang VM ビームが C で記述されたコードを実行すると、Erlang で記述された他のプロセスがスケジュールされませんでした。例えば:
static ERL_NIF_TERM
nifsleep(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
{
sleep(10);
return enif_make_atom(env, "ok");
}
この C 関数を Erlang で呼び出すと、他のプロセスが正常にスケジューリングされませんでした。なぜ知りたいのですか?これは機能ですか、それとも実装によって制限されていますか (つまり、これはバグですか)?
上記のコードのアドレスはhttps://github.com/davisp/sleepyにあります。