4.1.1.1.4. Work Queue Example
#define DECLARE_WORK(name, func, data) \
struct work_struct name = { data, NULL, func)
// Create a work queue with a kernel thread to serve it
struct workqueue_struct *create_workqueue (const char *name);
// Request executing work by a given work queue
int queue_work (
struct workqueue_struct *queue,
struct work_struct *work);
int queue_delayed_work (
struct workqueue_struct *queue,
struct work_struct *work,
unsigned long delay);
// Request executing work by the default work queue
int schedule_work (
struct work_struct *work);
int schedule_delayed_work (
struct work_struct *work,
unsigned long delay);
void flush_workqueue (struct workqueue_struct *queue);