Das mit dem "kaum pflegbar" würde ich nicht behaupten. Da die Funktionalität ja gut entkoppelt ist und auch sehr überschaubar. Mir schwebt da eine ähnliche Lösung (nur etwas leichter als deine) vor:
1. Beim erreichen des Punktes wird die rücksprung Adresse in einem globalen Pointer gespeichert
2. Zurück in die jobstack_execute und von da wieder in die Main
3. Wird jobstack_execute erneut ausgeführt an den in Schritt 1 gesetzten Pointer springen
Mein Problem hier ist, dass ich nicht weiß inwieweit ich damit mein Programm zerstöre. Muss ich vorher alle Register sichern, könnte ich Probleme mit den Funktions-Stack bekommen, ... .
Welche Auswirkungen hat es, wenn ich eine Funktion einfach verlasse.
- - - Aktualisiert - - -
Ja ist aufgeteilt ist, bedeutet aber viel Aufwand in der Funktion und die Funktion wird dadurch sehr schwer lesbar.
Der größte Nachteil dieser Lösung: Da die Funktion wirklich verlassen wird, verliert sie ihren Zustand. Will man zwischen den States zustände teilen muss das über globalen oder anderweitig geteilten Speicher geschehenm, was die Sache um einiges komplizierter macht.
Lesezeichen