Поискал в асистенте - не нашел что такое SIGNAL-Safe. Если автору нетрудно, не мог бы он разъяснить в чем заключается безопасность относительно сигналов?
Сигнал это функция которая вызывается в контексте
прерывания, а не основной нити. Но это и не другая нить. Многие Unix системные вызовы так и пишут в man "signal safe".
Я пробовал postEvent делать в основную очередь, ничего хорошего не получилось (трапалось, хотя и не факт что не из-за моих ошибок).
Поэтому интересен чужой опыт.
другими словами postEvent должен быть умный и весь из себя системный...
добавлено спустя 8 минут По второму способу - можно таймер с нулевым таймаутом - но прога будет жрать проц-время.
Есть третий вариант - QSocketNotifier в который передаётся файловый дескриптор COM порта.
Таймер с нулевым таймаутом?
А это работает ?
В принципе это наверное то что надо.
Только система должна при этом очередь выгребать
на каждый тик. Я то жрать время не буду.
Мне всего лишь проверить флажок который в сигнале выставится.
QSocketNotifier наверное не получится - я работаю напрямую с COM портом через системные вызовы. Опять же боюсь что в моей embedded qt2.3 я сокеты выключил.
добавлено спустя 16 часов 29 минут: По второму способу - можно таймер с нулевым таймаутом - но прога будет жрать проц-время.
Есть третий вариант - QSocketNotifier в который передаётся файловый дескриптор COM порта.
QSocketNotifier - посмотрел по сорцам это действительно то что надо.
в QApplication Message Loop стоит select который дергает qt signal.
Thanks to Alex03 !!!