Announcement

Collapse
No announcement yet.

InterlockedIncrement und Konsorten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • InterlockedIncrement und Konsorten

    Hi

    Andreas Kosch erwähnte die threadsicheren Funktionen InterlockedXXX.

    Delphi nutzt in seinen internen ASM-Sourcen den LOCK-Präfix, und meint dazu das diese identisch mit InterlockedXXX sind.
    z.B.

    <pre>
    asm
    LOCK INC EAX
    statt:
    INC EAX
    end;
    </Pre>

    Meine Frage ist nun, stimmt das, und funktioniert dies auch auf NT bzw. Multiprocessorsystemen ?

    Gruß Hagen

  • #2
    Hallo Hagen,

    ich versteht bei Assembler-Anweisungen nur Bahnhof, daher kann ich nur das weitergeben, was ich irgendwo gelesen habe: <br>
    a) in einer Borland-eMail war die Rede davon, das erst Delphi 5 mit mehreren Prozessoren threadfest umgehen kann (AnsiStrings etc.)<br>
    b) In der Win32-SDK-Hilfe zu <b>InterlockedIncrement</b> steht der folgende Satz:

    <i>The variable pointed to by the lpAddend parameter must be aligned on a 32-bit boundary; otherwise, this function will fail on multiprocessor x86 systems and any non-x86 systems. </i>

    Da die API-Funktion anscheinend Prozessorabhängig arbeitet, gehe ich davon aus, das dort auch nur die CPU-Fähigkeiten ausgenutzt werden

    Comment

    Working...
    X