CAS_Funktionalitaet

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

CAS_Funktionalitaet
Hallo zusammen,
es geht um die CAS Methode aus der Uebung.
Mal angenommen, wir wollten einen Buffer mit mehreren Writern (synchronisiert), wie kann ich denn dann die Funktion sinnvoll verwenden. Als Referenzvariable sollte man ja immer noch den Schreibindex verwenden.
Aber wie mache ich dann den Schreibzugriff rueckgaengig (wenn ein anderer writer dazwischen geschrieben hat)? Oder macht das die Methode selbst?


Hey,

falls es noch nicht zu spät ist, die Methode Cond exchange {weak,strong}. Bei einer Methoden Signatur von exchange(actual,expected,desired).Gibt in Erfolgsfall (True), also wenn expected = actual überschreibt sie den wert mit desired. Im Fehlerfall wird expected auf actual zurückgesetzt. Bedeutet bevor du in deine loop reingehst solltest du dir den alten wert als Referenzwert merken und diesen als actual wert benutzen, weil das ganze parallel ist sollte es sich natürlich um eine atomic variable handeln