AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Wie ist die Windows API Funktion EnterCriticalSection implementiert?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie ist die Windows API Funktion EnterCriticalSection implementiert?

Ein Thema von QuickAndDirty · begonnen am 11. Okt 2012 · letzter Beitrag vom 15. Okt 2012
 
Benutzerbild von himitsu
himitsu

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

AW: Wie ist die Windows API Funktion EnterCriticalSection implementiert?

  Alt 11. Okt 2012, 11: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.
Ein Therapeut entspricht 1024 Gigapeut.

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


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz