Для обеспечения большей отказоустойчивости при передачи большого числа данных по интерфейсным портам отказаться от вложенных прерываний, заменив к тому же использование критических секций, построенных над конкретными типами прерываний, меньшими по размеру глобальными критическими секциями.
Все-таки хранить разные проекты в одном репозитории слишком неудобно, когда дело касается подмодулей. Сложно, когда требуется обновлять указатель подмодуля, в котором изменения произошли сразу в нескольких проектах -- приходится обновлять код основного проекта в соответствии со всеми этими изменениями.
В каждом README.md должно быть указано полное назначение проекта, его API, если он таковое предоставляет, инструкции по эксплуатации. Либо произведена отсылка к соответствующему разделу WIKI.
Для реализации неблокирующего ввода-вывода (#5) качественно, а также для упрощения тестирования требуется обобщение механизма com_port'ов на механизм каналов.
Предлагается дополнить класс com_port методами ожидания готовности хотя бы одного из процессов (готовность чтения, готовность записи) и сделать его интерфейсом channel.
В самом же реакторе использовать std::unique_ptr вместо move-semantic-only-объекта.