Исправлен серьезный баг: при вызове setAlarm() захватывался не тот семафор (boardMutex вместо boardsMutex).