У нас есть проект для встраиваемых систем Linux, и мы заинтересованы в производительности.
Пример асинхронного ввода последовательного порта по адресу:
http://www.faqs.org/docs/Linux-HOWTO/Serial-Programming-HOWTO.html#AEN105
в значительной степени делает то, что мы хотим.
Однако ответственный инженер возражает против потери производительности процессора
зацикленный звонок сна. Он хотел бы, чтобы программа ожидала сигнала для выполнения кода обработки ответа.
Я пытался переместить этот код из main () во внутреннюю функцию сигнала, т.е.
void signal_handler_IO (int status)
{
// I moved my code here
}
Результат не работает, записи в последовательный порт, выполненные в этой функции, быстро завершаются неудачно, и программа перестает отвечать на запросы.
Почему это?
И есть ли у кого-нибудь хороший пример ввода-вывода, управляемого через сигнал, только для одного последовательного порта? Я пролистывал главу 63 книги Керриска "Интерфейс приограммы Linux" и гулял, как сумасшедший. Я начинаю думать, что не может быть лучшего способа сделать первоначальный пример.
Заранее спасибо,
Bert