Как прервать заблокированную операцию USB-Serial I / O в Lua - PullRequest
2 голосов
/ 26 июня 2019

У меня есть демон Lua, работающий на OpenWrt Box, который периодически проверяет данные на нескольких устройствах USB-Serial (ACM), используя librs232 (https://github.com/ynezz/librs232.git).

)

Проблема, с которой я сталкиваюсь, заключается в том, что время от времени (примерно раз в 24 часа) одно из USB-устройств случайным образом блокируется и блокируется во время, что должно быть неблокирующей операции чтения. Мне нужно быть в состоянии обнаружить это состояние и прервать операцию чтения.

В настоящее время я думаю, что лучшим решением является запуск отдельного потока для каждого USB-устройства, но я не уверен, как «убить» заблокированный поток, когда его (неблокирующая) операция чтения зависает.

Для акцента, я ищу решение на основе Lua .

У кого-нибудь есть идеи?

...