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