Re: [SOS] Dupliquer une tâche ...

Cyril Dupuit cyrildupuit at hotmail.com
Lun 6 Mar 20:33:32 CET 2006


Bonsoir,

>Je pense qu'il peut y avoir des cas delicats dans lesquels meme les 
>variables "locales" a tes threads (allouées dans la pile) se retrouvent 
>partagées par tes 2 threads. Dans ce cas ça pose probleme car tu n'avais 
>pas prévu qu'il y ait acces concurrents sur ces objets !

Effectivement, je n'avais pas pensé à ça.

>Un exemple ? Je ne suis pas sûr de celui-là, mais tentons... Avant 
>d'appeler ton syscall, une des fonctions appelantes alloue des choses dans 
>sa pile, ...
>Bref, au niveau user, cette technique me parait assez (très ?) dangereuse.

Tu as raison, c'est exactement ton exemple qui a été exécuté.

J'avais l'intention d'utiliser cet appel système que pour le coté 
utilisateur. Au niveau noyau, je ne me suis pas encore posé la question de 
l'utilité de cette fonction.

En tout cas, je suis un peu perdu car je ne sais pas comment faire ?

Peut-être analyser la pile du thread parent et remplacer les valeurs 
comprises entre le haut et le bas de cette pile par les valeurs équivalentes 
de la pile du thread dupliqué. Étant donné que les adresses sont alignées 
sur 4 octets, le remplacement est possible assez facilement.

Je ne sais pas ce que vous en pensez ?

Merci encore.

Bonne soirée.

Cyril




Plus d'informations sur la liste de diffusion Sos