Привет, ЛОР!
Возник очередной нубский вопрос по поводу ядра. Если я правильно понял, то рабочие потоки представляются структурой workqueue_struct, в которой содержится массив структур struct cpu_workqueue_struct:
/*
* The per-CPU workqueue. The lower WORK_STRUCT_FLAG_BITS of
* work_struct->data are used for flags and thus cwqs need to be
* aligned at two's power of the number of flag bits.
*/
struct cpu_workqueue_struct {
struct global_cwq *gcwq; /* I: the associated gcwq */
struct workqueue_struct *wq; /* I: the owning workqueue */
int work_color; /* L: current color */
int flush_color; /* L: flushing color */
int nr_in_flight[WORK_NR_COLORS];
/* L: nr of in_flight works */
int nr_active; /* L: nr of active works */
int max_active; /* L: max active works */
struct list_head delayed_works; /* L: delayed works */
};
и, наверное, можно руками контролировать размер связного списка delayed_works. Существует ли механизм ограничения размера очереди workqueue?