[so] Forking Multithreaded Programs?

Laurențiu Dascălu dascalu.laurentziu at gmail.com
Tue Nov 10 18:55:10 EET 2009


Stefan Bucur a scris:
> Salutari!
> 
> Am primit azi o intrebare de la cineva, la care n-am reusit sa
> raspund. Am cautat si pe internet, insa n-am gasit nici un raspuns
> relevant.
> 
> Cum poti face fork la un program multi-threaded, in sensul ca sa
> copiezi toate thread-urile in noul proces? Din specificatiile POSIX,
> fork() nu copiaza decat thread-ul apelant, lucru care este un pic
> ciudat, avand in vedere ca celelalte thread-uri isi tin stiva in
> spatiul de adresa al procesului si practic ar putea fi copiate si ele,
> la randul lor.
> 
> Any thoughts on this?

Cred că merge dacă toate thread-urile din părinte se înregistrează cu 
pthread_atfork(), pentru a executa cod înainte și după fork(), și în 
copil refaci firele.

-- 
Laurențiu Dascălu



More information about the so mailing list