Go's Race Detector: Ein Mutex-Blinder Fleck

2025-07-31
Go's Race Detector: Ein Mutex-Blinder Fleck

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