Sto lavorando su un progetto in cui ho un thread principale e filo un demone per eseguire le uscite di file. Nel mio thread principale Ho un campo pthread_t * _daemon
che vorrei cancellare, ma ovviamente solo dopo _daemon
restituisce NULL (ho capito che l'utilizzo di pthread_exit()
perdite di memoria causa).Eliminazione di un thread demone solo dopo ritorna
Come posso farlo senza occupato-attendere? Se cerco di usare una variabile di condizione Ho un problema - Quando chiamo signal()
forma _daemon
svegliare mio thread principale, cancella _daemon
prima di esso _daemon
restituisce null.
Quello che ho fatto è solo usare un blocco mutex che viene bloccato quando il programma viene avviato e sbloccato prima dei ritorni _daemon
. C'è un modo migliore che non causi l'attesa?
'pthread_join'? – Mat
Non è chiaro cosa stai chiedendo. Che cosa ti piacerebbe cancellare esattamente? –
Il campo pthread_t, ma solo dopo che il thread del daemon memorizzato lì restituisce – yotamoo