Готовый перевод Linux Device Drivers 3 / Драйверы устройств Линукс (третье издание): 7.6. Workqueues

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «идёт перевод»

struct workqueue_struct *create_workqueue(const char *name);

struct workqueue_struct *create_singlethread_workqueue(const char *name);

DECLARE_WORK(name, void (*function)(void *), void *data);

INIT_WORK(struct work_struct *work, void (*function)(void *), void *data);

PREPARE_WORK(struct work_struct *work, void (*function)(void *), void *data);

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);

int cancel_delayed_work(struct work_struct *work);

void flush_workqueue(struct workqueue_struct *queue);

void destroy_workqueue(struct workqueue_struct *queue);

/* this line is in jiq_init( ) */

INIT_WORK(&jiq_work, jiq_print_wq, &jiq_data);

int schedule_work(struct work_struct *work);

prepare_to_wait(&jiq_wait, &wait, TASK_INTERRUPTIBLE);

schedule_work(&jiq_work);

schedule( );

finish_wait(&jiq_wait, &wait);

static void jiq_print_wq(void *ptr)

{

struct clientdata *data = (struct clientdata *) ptr;

if (! jiq_print (ptr))

return;

if (data->delay)

schedule_delayed_work(&jiq_work, data->delay);

else

schedule_work(&jiq_work);

}

int schedule_delayed_work(struct work_struct *work, unsigned long delay);

Если вы посмотрите на вывод этих двух устройств, то он выглядит примерно так:

% cat /proc/jiqwq

time delta preempt pid cpu command

1113043 0 0 7 1 events/1

1113043 0 0 7 1 events/1

1113043 0 0 7 1 events/1

1113043 0 0 7 1 events/1

1113043 0 0 7 1 events/1

% cat /proc/jiqwqdelay

time delta preempt pid cpu command

1122066 1 0 6 0 events/0

PAGE 208

1122067 1 0 6 0 events/0

1122068 1 0 6 0 events/0

1122069 1 0 6 0 events/0

1122070 1 0 6 0 events/0

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод

Переведено на Нотабеноиде
http://notabenoid.org/book/11832/38309

Переводчики: armagetron

Настройки

Готово:

36.11% КП = 1.0

Непереведённые фрагменты будут пропущены.