You have to implement the tasking system if you choose to:
The heart of the multi-threading system is the context switching mechanism between threads. This mechanism is not fully supported by C and involves machine-level coding. The context switching is done by the context_switch routine, which you have to implement.
On some systems, the C setjmp, longjmp mechanisms perform context switching (on some systems longjmp refuses to jump to higher stack addresses), but the initial thread setting must be done in machine code. On some systems, there are vendor supported multi-threading libraries (for example, lightweight processes on SUNOS) that provide library services for these purposes.