Go's Race Detector: Ein Mutex-Blinder Fleck
2025-07-31
Go's Race Detector hat einen blinden Fleck im Umgang mit Mutexen. Ein Beispiel zeigt, wie zwei Goroutinen einen Mutex verwenden, um einen gemeinsamen Zähler zu schützen, wobei eine Goroutine einen zusätzlichen Inkrement außerhalb des Locks durchführt. Obwohl ein Data Race möglich ist, kann Go's Detector ihn übersehen, da er von der Reihenfolge der Lock-Akquisition abhängt, die zur Laufzeit unvorhersehbar ist. Obwohl Go's Race Detector ein erstklassiges Tool ist, verdeutlicht dieses Beispiel, dass Race Conditions immer noch bestehen können, selbst wenn der Detector keine Races meldet.
Entwicklung
Race Detection