Diese Funktionen dienen der Implementierung eines Kontextwechsels zwischen mehreren Kontrollflüssen innerhalb eines Benutzerprozesses. makecontext() verändert den durch ucp angegebenen Kontext, der über getcontext() initialisiert wurde. Wird dieser Kontext mit swapcontext() oder setcontext() aktiviert (siehe
getcontext() ), wird die Programmausführung mit dem Aufruf der Funktion func fortgesetzt. Die Argumente, die auf argc folgen, werden an makecontext() übergeben. Der ganzzahlige Wert von argc muss der Anzahl der Argumente entsprechen, die auf argc folgt. Ansonsten ist das Verhalten undefiniert.
Bevor makecontext() aufgerufen wird, sollte dem zu modifizierenden Kontext ein Stack zugewiesen werden. Das Strukturelement uc_link legt den Kontext fest, der aktiviert wird, wenn der durch makecontext() modifizierte Kontext zurückkehrt. swapcontext() sichert den aktuellen Kontext in der Kontextstruktur, auf die oucp zeigt, und setzt den Kontext auf die Kontextstruktur, auf die ucp zeigt.
|