Например, в Java я могу сделать это с помощью LMAX disruptor:
Disruptor<NetworkEvent> disruptor = new Disruptor<>(NetworkEvent::new, 2048, Executors.newSingleThreadedExecutor());
В Котлин я пробую этот эквивалент:
val disruptor = Disruptor<NetworkEvent>({ NetworkEvent() }, 2048, Executors.newSingleThreadExecutor())
Но меня приветствует эта ошибка:
Прежде всего, вам не нужно указывать T, kotlin может это сделать.
Во-вторых, сообщение об ошибке говорит, что неправильно, Disruptor хочет EventFactory, но вы передаете ему простую лямбду.
Если вы хотите передать лямбда в качестве интерфейса SAM, иногда необходимо перевести лямбда с именем интерфейса.
Попробуйте следующее (непроверенное):
val disruptor = Disruptor(EventFactory { NetworkEvent()}, 2048,....)