Ainsi, si on reparle de mon exemple, ma fonction déjà thread-safe et réentrante devient interrupt-proof si on protège l'empilement et le dépilement.
Mais cette protection ne sera pas par un mutex ou une CRITICAL_SECTION de Windows, car une routine d'interruption est incapable d'attendre qu'une ressource du même thread se libère*: Il faudra neutraliser l'interruption, ce qui sous Windows n'est pas possible en user-mode (mais pas grave, car sous Windows un thread utilisateur ne peut pas être interrompu par lui-même).
*Ce qui fait toute la différence entre multithread et programmation interruptible.
Partager