Pour moi, elle est réentrante si on peut l'appeler de la callback sans problème, non?
C'est justement de la callback elle-même que vient le risque d'utilisation récursive, donc si la fonction n'appellait pas de callback, je n'aurais pas de besoin de d'empiler ma variable persistante...
Non, je présuppose que la globale n'est pas une vraie globale, mais du TLS (d'où le __declspec(thread) parce que j'avais la flemme d'écrire le code de gestion explicite du TLS dans un simple code d'exemple). J'aurais aussi bien pu "supposer que l'expérience de déroule dans le cadre d'un programme monothread"...Typiquement, dans le code que tu montres, tu présupposes (tacitement, vu l'absence de SC) que l'affectation de la globale ou son incrémentation sont atomiques
Partager