Вопрос весьма прост я принимаю поток с COM порта стандартной функцией read. Она сейчас запущенна в блокирующем НЕ каноническом режиме. В отдельном потоке.
Вопрос собственно в том - как выгоднее с точки зрения производительности оставить как есть или например сконфигурировать ее в неблокирующий режим и время от времени опрашивать отправляя поток в спячку на какое-то время.
Есть специальный механизм - poll/select чтобы не делать опрос "вручную", но если у вас только один порт и только чтение то по-моему разницы между блокирующим чтением и неблокирующим+poll/select никакой нет. poll/select полезен когда надо контролировать несколько устройств не занимая процесс только одним . Вообще poll/select предпочтительнее - лучше масштабируется (проще расширить функциональность), не напрягает планировщик но если не планируете ничего больше добавлять и все работает то смысла переписывать нет, а вручную по таймеру опрашивать как вы написали - это будет еще хуже чем есть сейчас.
Дык какая разница - это тот же таймер - поток "засывает" а не в активном ожидании и планироовщик его "будит" по окончании таймера. Если решили переписать - переписывайте на poll/select, но я бы не трогал если работает. Принципиальная разница poll в том что поток будет "разбужен" когда реально появились данные - вы не вмешиваетесь в работу планировщика постоянным дерганием через таймер, наличие данных в ядре проверяется не нарушая планирование.