• # multithread et optimisation

    Posté par (site web personnel) . En réponse au message Volatile, struct et interruptions.. Évalué à 2.

    Il me semble qu'il y a deux aspects à distinguer, d'une part prévenir la concurrence malheureuse en multithread et d'autre part prévenir une optimisation malheureuse d'accès à la mémoire vive.

    volatile ne permet d'éviter que les optimisations malheureuses d'accès à la mémoire vive.

    Par contre, cela ne concerne que la variable en question... Ce que je veux dire, c'est que dans le traitement de ce buffer, il y a typiquement un pointeur propre de parcourt initialisé avec le buff de ta structure (et si volatile, toujours par une lecture de la mémoire vive, même si pour l'optimisateur un registre contient toujours la valeur) mais ensuite, que se passera-t-il ?

    Comme son nom l'indique, une interruption est susceptible d'interrompre le fil d'exécution où qu'il en soit (il y a peut-être possibilité de protéger un petit groupe d'instructions, à la manière "atomique", mais je suis pas sûr...). Par exemple, les allocations dynamiques ne devraient, a priori, pas être libérées par le traitement d'une interruption.