Ucontext in linux

Ho letto che ucontext è usato per salvare il contesto tra più thread in linux. Poiché il sistema operativo cambia il contesto tra diversi thread, perché linux fornisce questo file di intestazione (ucontext.h) per il cambio di contesto?

ucontext.h definisce le funzioni ( setcontext , getcontext , makecontext e swapcontext ) e le strutture ( ucontext_t e mcontext_t ) che consentono al programmatore di salvare e ripristinare il contesto del programma.

Usando queste funzioni, un programmatore può implementare schemi avanzati di controllo del stream, come coroutine o thread utente leggeri.

Una buona quantità di dettagli (incluso un esempio di implementazione di coroutine) è fornita nella libreria GNU C: Complete Context Control .

Va notato che ucontext.h stato ucontext.h obsoleto in POSIX.1-2008 (“IEEE Std 1003.1-2001 / Cor 2-2004, è stato applicato l’articolo XBD / TC2 / D6 / 28, aggiornando getcontext (), makecontext (), setcontext () e le funzioni di swapcontext () obsolete. “nella pagina ucontext.h ).)