Есть простая программа, которая проверяет наличие dhcp серверов в сети (что-то вроде пинга).
написана с использованием сабжа. И вот такой в ней косяк. Если во время работы программы выдернуть сетевой кабель, то она зависает в вызове recvfrom, и игнорирует все сигналы кроме KILL, хотя в ней самой естественно предусмотрен таймер (на SIGALRM), и по идее она не должна ожидать пакета более 1 секунды..
Есть идея заменить таймер на sigalarm с помощью select, просто с поверх Libpcap используется некая обертка с которой это сделать не очень удобно.
В чем может быть проблема и как этого избежать, кстати я подозреваю что этим страдают почти все программы использующие сабж.