У меня есть демон Lua, работающий на OpenWrt Box, который периодически проверяет данные на нескольких устройствах USB-Serial (ACM), используя librs232 (https://github.com/ynezz/librs232.git).
)
Проблема, с которой я сталкиваюсь, заключается в том, что время от времени (примерно раз в 24 часа) одно из USB-устройств случайным образом блокируется и блокируется во время, что должно быть неблокирующей операции чтения. Мне нужно быть в состоянии обнаружить это состояние и прервать операцию чтения.
В настоящее время я думаю, что лучшим решением является запуск отдельного потока для каждого USB-устройства, но я не уверен, как «убить» заблокированный поток, когда его (неблокирующая) операция чтения зависает.
Для акцента, я ищу решение на основе Lua .
У кого-нибудь есть идеи?