Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Завершить функцию по таймауту


Автор: danilsl 8.7.2010, 11:50
Всем привет. Пишу функцию, завершение которой напрямую зависит от адекватности сотового оператора, то есть если ответа нет она может висеть вечно. Подскажите пожалуйста способ завершить её через какое-то время, если она сама не завершается

Автор: triclosan 8.7.2010, 12:13
имхо, два потока, один - управляемый в нем запускаешь свою функцию, второй - управляющий, в нем при помощи, например, системной функции sleep проверяешь пришел ли уже ответ. Пришел ничего не делаешь, не пришел - завершаешь упраявляемый. 

Автор: djamshud 8.7.2010, 12:46
В этой функции можно форкнуться, одним процессом слушать опсоса, вторым следить за первым.

Автор: MAKCim 8.7.2010, 14:22
для этого висеть лучше через select и аналоги ;)

Автор: djamshud 8.7.2010, 14:35
Ох, видимо у меня крайняя степень отупения - забыть про селект :(.

Автор: danilsl 8.7.2010, 15:49
А не мог бы кто-нибудь дать простенький пример как селектом пользоваться, ни разу с ним не сталкивался, а гугл рассказывает про SELECT * FROM smile 
А новый поток создавать не хочу, прога и так тяжёлая, а работает на примитивном-примитивном арме...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)