Como usar o pcap_breakloop?

Eu tenho uma função pcap_loop em outra função, que captura pacotes até que o usuário a interrompa, ou seja,

void functionA()
{
   signal(SIGINT, terminate_process); 
   pcap_loop(handle, -1, callback, NULL);
   ...

}

void terminate_process(int signum)
{
   pcap_breakloop(handle);
   pcap_close(handle);
} 

É possível definir uma duração para quando os pacotes serão capturados? Algo como:

if (time(NULL) - start_time > 100)
   pcap_breakloop(handle);

Mas não sei onde colocar isso, porque até agora todos os exemplos que eu vi usavam pcap_breakloop em um manipulador de sinal, o que requer intervenção do usuário. Como a condição de tempo será verificada enquanto o pcap_loop estiver em execução?

Obrigado.

Atenciosamente, Rayne

questionAnswers(0)

yourAnswerToTheQuestion