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.