Hallo,
ich plage mich mit folgenden Problem.
In einen Ringpuffer werden Daten zyklisch geschrieben und gelesen.
Das funktioniert auch wie gewünscht.
Den Lese- und den Schreibvorgang habe ich in einer kritischen Sektion eingeschlossen.
Also
Delphi-Quellcode:
FLock : TCriticalSection;
FLock.Acquire;
FLock.Enter;
schreibe Daten in den Buffer
FLock.Release;
Um das Teil zu stressen schreibe ich über einen Timer zyklisch Daten und Lese diese wieder.
Schreibe ich jetzt zusätzlich Daten über einen Schalter in den Buffer, kommt eine Speicherschutzverletzung.
Das heist, dass der als kritische Sektion gekapselte Vorgang offensichtlich nicht abgeschlossen ist,
und der über Schalter ausgelöste asynchrone Schreibzugriff in den gerade laufenden fuscht.
Hat wer eine Idee, wie ich den Schreibvorgang in den Buffer absichern kann,
ohne das eine Unterbrechung möglich ist?
Mit Gruß Peter