Вход на сайт
Проблема с Signal-Handlerами
132 просмотров
Перейти к просмотру всей ветки
Smit1970 завсегдатай
в ответ genocidee 22.10.06 10:04
В ответ на:
Тоесть если я посылаю сигнал, то ничего не происходит пока не будет получен и обработан очередной SNMP-пакет, а это может занять очень много времени. Как мне зделать асинхронное прерывание??
Тоесть если я посылаю сигнал, то ничего не происходит пока не будет получен и обработан очередной SNMP-пакет, а это может занять очень много времени. Как мне зделать асинхронное прерывание??
Либо пуллинг при неблокирующем чтении (если с сокетами такое возможно), либо сделать приложение многопоточным (multithread or multiprocess) и использовать один из видов IPC. При реализации multithread можно ставить условные блокировки pthread_cond_wait, срабатывать pthread_cond_signal будет мгновенно. В этом случае можно обойтись без сигналов и хандлеров, которые имеют побочные эффекты (к примеру с хандлерами компилить программу надо с макросом -D_REENTRANT или писать врапперы на SIGINT).
MfG, Smit.
"There is no silver bullet" -- F. Brooks