Ich habe eine re-entrancy guide über empfohlene Praktiken beim Schreiben von Reentry-Code durchgespielt.Empfohlene Vorgehensweisen für Wiedereintrittscode in C, C++
Welche anderen Referenzen und Ressourcen decken dieses Thema ab?
Welche fusselartigen Werkzeuge können verwendet werden, um nach diesen Problemen zu suchen?
, dass so ziemlich Führung hat alles, was Sie wissen müssen. Es ist keine sehr subtile Sache. Verwenden Sie keine Daten, die Sie beim Funktionsaufruf nicht übergeben haben, speichern Sie keine Zustände in der Funktion. –
Dieser Leitfaden hat zahlreiche Fehler, von einer Definition der Reentrancy, die tatsächlich Multithreading ist (obwohl die Signalverarbeitungsbeispiele echte Reentrancy sind), zu schlechten Ratschlägen (Mutexe ... Hallo Deadlock) zu einfachem Bugginess ('sigsuspend (& zeromask)'). Sie haben gerade die Verarbeitung von Interrupts zugelassen, die Ihr Aufrufer aus einem bestimmten Grund deaktiviert hat, und versuchen stattdessen "sigsuspend (& oldmask)". –