Добрый вечер. Есть недопонимание как _нормально_ пользоваться NIF. В доках написано:
Avoid doing lengthy work in NIF calls as that may degrade the responsiveness of the VM. NIFs are called directly by the same scheduler thread that executed the calling Erlang code. The calling scheduler will thus be blocked from doing any other work until the NIF returns.
Теперь допустим есть задача: надо реализовать структуру данных, ну явно мутабельная(+ нужна скорость), по своей сути. Умеет read и write. Read может быть параллельный и write только 1. Write не лочит read.
Соответсвенно возникает проблема, что при достаточно долгом write, многие read процессы просто лочатся.
Как правильно делается вышеописанное?