• [^] # Re: E_NOENOUGH_INFO | E_UNNEEDED

    Posté par . En réponse au message Volatile, struct et interruptions.. Évalué à 2.

    Il y a-t-il un risque que l'interruption utilise une mauvaise valeur pour head ? C'est-à-dire entre le momen où tu calcules freesz et le moment où tu modifie tail.
    -> Non je ne crois pas, au pire tu as un overrun du à un freesz sous-estimé.

    Et bien si!

    Mais à la limite on s'en fiche : je ne calcule pas la taille dans mon cas, je me contente juste de comparer tail et head pour savoir si mon buffer est plein. La seule chose que je risque, c'est de croire que mon buffer est plein alors qu'un espace a été libérée par la routine de lecture, ce qui n'est pas si grave que ça dans mon cas.

    Il y a-t-il un risque que main utilise une mauvaise valeur de tail ? Idem, non je ne crois pas.
    

    Et bien si!

    Là encore je ne pense pas que ce soit grave : dans la boucle, il considèrera que le buffer est vide, alors que l'IT aura ajouté un caractère dans le buffer, et attendra la prochaine itération de la boucle pour voir qu'en fait il y a un caractère à émettre.