CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    2013/10/28 22:23:16

Modified files:
        sys/conf       : files 
        sys/kern       : init_main.c 
Added files:
        sys/kern       : kern_task.c 
        sys/sys        : task.h 

Log message:
introduce tasks and taskqs as an alternative to workqs.

tasks are modelled on the timeout api, so users familiar with
timeout_set, timeout_add, and timeout_del will already know what
to expect from task_set, task_add, and task_del.

i wrote this because workq_add_task can fail in the place you
actually need it, and there arent any good ways of recovering at
that point.  workq_queue_task was added to try and help, but required
external state to be stored for users of that api to know whether
something was already queued or not.

workqs also didnt provide a way to cancel or remove work.

this has been percolating with a bunch of people. putting it in as i
wrote it so i can apply their feedback to the code with the history kept
in cvs.

Reply via email to