Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.211 Beiträge
 
Delphi 12 Athens
 
#2

AW: Wie ist die Windows API Funktion EnterCriticalSection implementiert?

  Alt 11. Okt 2012, 12:51
Die arbeiten irgendwie mit Sperrvariablen, einem Event, Listen (wer grade per Enter anfragt), Speerzählern und sonstwas,
aber wozu muß man das unbedingt wissen?

Es funktioniert und ist sogar recht flott.

Hat mich auch gewundert, dachte das wäre langsamer und hab eine Zeit lang was Selbestgebasteltes verwendet. Über eine Schleife, 'nem winzigen Sleep (wegen der 100%-CPU) und das LOCK (Assembler), bzw. über die Interlocked-Funktionen.


Es ist auf jeden Fall nicht nur ein billiger Semaphore, denn das Sperren ist threadabhängig.
Der Thread, welcher das gesperrt hat, kann es recursiv beliebig oft "sperren".
(Ich hatte mal die Debuginfos der CS versucht auszuwerten, aber irgendwie scheint das intern nun anders zu funktionieren, als es die Debuginfos verraten.

PS: Es gibt hier irgendwo einen Thread von mir, wo ich mal versuchte ein Timeout für das ENTER zu implementieren, indem ich mich z.B. an das angeblich vorhandene Event hängen wollte.
$2B or not $2B

Geändert von himitsu (11. Okt 2012 um 12:57 Uhr)
  Mit Zitat antworten Zitat