Что такое reentrancy у actor и чем это опасно?
Суть
Актор реентерабелен: когда его метод доходит до await и приостанавливается, актор не блокируется — он может начать выполнять другой вызов (в том числе тот же метод из другой задачи). Когда первый вызов возобновится, состояние актора может быть уже не тем, что он видел до await. Data race при этом невозможен (одновременно внутри актора всё равно одна задача), но ломаются инварианты: двойная загрузка, двойное списание, устаревший кэш. Это и есть race condition без data race.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep