# Domain/OS calls: task_$

## User-space multitasking

The earlier version of Domain/OS didn't have kernel threads. However, because of the well-designed IO and IPC systems, processes rarely blocked in the kernel -- usually they were waiting on one or more eventcounts. This tasking library could use this facility to implement single-process multitasking (what we'd nowadays call threads) in user space.

The later versions of Domain do have kernel threads, mostly to be JLRU. This tasking library has been re-implemented on top of the thread_$ interface, though still some things (like signalling specific threads) can only be done with these calls. ``

- task_$blast
- task_$create
- task_$cur_tcb_p
- task_$exit
- task_$get_ec
- task_$get_handle
- task_$get_info
- task_$get_tcb_base
- task_$get_uid
- task_$init
- task_$release
- task_$set_name
- task_$set_result
- task_$signal
- task_$tasking_enabled
- task_$xget_handle
- task_$xget_info
- task_$xget_regs
- task_$xget_saved_regs
- task_$xget_tcb_ptrs
- task_$yield