lefantome
17-11-2010, 21:00
Allora ho un programma con due processi, capto un segnale sigint e setto una variabile globale loop =1.
Ora un thread é fatto cosė:
Thread A{
...
malloc varie
...
while(loop ==0)
{
...
malloc
...
fgets(stdin,&s,n); /* Attesa per l'input utente */
...
altre operazioni
...
}
pulizia ambiente
thread_exit();
}
Ora naturalmente il segnale viene sempre ricevuto tra il ciclo di loop con loop=0 e fgets,
cosė prima di terminare deve eseguire tutto il ciclo while.
Questo comportan che sia obbligato a inserire un input altrimenti il thread e di conseguenza il processo non termina(il processo attende la terminazione del thread con pthread_join() ).
Ora io non penso di poter usare pthread_kill() su questo thread perchč devo deallocare tutta la roba allocata ne thread etc..
Come posso fare?
:muro: :muro: :muro:
Ora un thread é fatto cosė:
Thread A{
...
malloc varie
...
while(loop ==0)
{
...
malloc
...
fgets(stdin,&s,n); /* Attesa per l'input utente */
...
altre operazioni
...
}
pulizia ambiente
thread_exit();
}
Ora naturalmente il segnale viene sempre ricevuto tra il ciclo di loop con loop=0 e fgets,
cosė prima di terminare deve eseguire tutto il ciclo while.
Questo comportan che sia obbligato a inserire un input altrimenti il thread e di conseguenza il processo non termina(il processo attende la terminazione del thread con pthread_join() ).
Ora io non penso di poter usare pthread_kill() su questo thread perchč devo deallocare tutta la roba allocata ne thread etc..
Come posso fare?
:muro: :muro: :muro: