Когда луч 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.