Funktionsstack



  • So für die Leute, die etwas mehr Ahnung von Stacks haben.

    1.Hat ein Prozess einen eigenen Funktionsstack, oder ist der Stack für alles da.

    2.Hat jeder Thread einen eigenen Funktionsstack?

    3.Wenn ich einen Callback mit einem Pointer auf eine Funktion eines Prozesses zu von einem Thread aus mache, auf welche der Stacks landet das dann?

    Falls wichtig, das System ist Windows XP.



  • hi,
    jeder thread hat seinen eigenen stack. prozesse haben keinen stack (aber alle thread-stacks sind im adressraum des prozesses zu dem die threads gehören).
    mit funktionsaufrufen, indirekten sprüngen usw. kann man einen thread nicht verlassen. threadumschaltung macht das betriebssystem (zeitgesteuert).
    jedenfalls isses bei xp etc. so...



  • Also ist die Main-Methode nix anders als ein Thread, oder ?
    Gut, aber auf welchem Thread-Stack landen jetzt die Callbacks? auf dem Der Aufgerufen werden soll, oder auf dem der den Callback auslöst?



  • Nightstorm schrieb:

    Also ist die Main-Methode nix anders als ein Thread, oder ?

    Wenn du es so willst 😉 Die main()-Funktion läuft in einem Thread.

    Gut, aber auf welchem Thread-Stack landen jetzt die Callbacks? auf dem Der Aufgerufen werden soll, oder auf dem der den Callback auslöst?

    Afaik müssten die in ihrem Thread bleiben (d.h. die Callback-Funktion wird von dem Thread ausgeführt, der sie auch ausgelöst hat).


Log in to reply