pthread_cancel dovrebbe essere l'API che ti serve, prima però devi crearti una condizione ed un mutex nel thread principale, come variabili globali ovviamente.
Lo schema + o - sarebbe
I nomi delle funzioni e la loro sintassi è sul man, è più o meno un anno che non scrivo codice su Linux per cui potrei cannare.codice:/*var globali*/ dichiara mutex; dichiara condition variable; void thread_func(void*) int main(.. inizializza mutex; inizializza condition variable; x=0; pthread_t thread = lancia il thread thread_func imposta un timer su un intervallo di X secondi blocca il mutex aspetta la condizione con timer (p_thread_cond_timewait) sblocca il mutex se p_thread_cond_timewait restituisce errore cancella il thread fai il join del thread. ... void thread_func(... { cerca di leggere se ci riesce broadcast_condition continua }
Buon saturday night![]()

Rispondi quotando