Szenario: Ich habe ein großes Stück Code geschrieben, das auf 2 parallelen Threads läuft, die in Code identisch sind und nur unterschiedliche Daten verarbeiten. Ich sehe nicht-deterministische Ergebnisse. Wenn ich einen der 2 Threads deaktiviere, werden die Ergebnisse deterministisch. Innerhalb dieses Codes verwende ich einige statische Inline-Funktionen (Hauptgrund: es sind kleine Funktionen, die ich hier und dort brauche, für die ich einfach den Code in den Übersetzungseinheiten dupliziere, wo sie benötigt werden), und ich würde gerne verstehen, ob sie das tun könnte eine mögliche Ursache für mein Problem sein.Sind statische Inline-Funktionen threadsicher?
Sind statische Inline-Funktionen in C threadsicher? Andersherum gesagt, wenn sie keine statische Variable im Inneren haben, sondern nur einige lokale Variablen und die Eingabeparameter, verursacht ein gleichzeitiger Aufruf von den zwei Threads unvorhersehbares Verhalten?
Dinge, die nicht threadsicher sind, sind Dinge, die sich ändern können. Code ändert sich nicht (unter normalen Umständen), aber Variablen tun es oft. – xaxxon