workqueue: remove knowledge of td queue state
[fio.git] / lib / tp.c
index 386e31afc3f0d664e5ae68dbddd7ac119064217e..7462f5bfa824cbfc7fff44a50fe76ee8fe0919a9 100644 (file)
--- a/lib/tp.c
+++ b/lib/tp.c
@@ -11,6 +11,7 @@
 #include <unistd.h>
 #include <errno.h>
 #include <pthread.h>
+#include <string.h>
 
 #include "../smalloc.h"
 #include "../log.h"
@@ -21,9 +22,19 @@ static void tp_flush_work(struct flist_head *list)
        struct tp_work *work;
 
        while (!flist_empty(list)) {
+               int prio;
+
                work = flist_entry(list->next, struct tp_work, list);
                flist_del(&work->list);
+
+               prio = work->prio;
+               if (nice(prio) < 0)
+                       log_err("fio: nice %s\n", strerror(errno));
+
                work->fn(work);
+
+               if (nice(prio) < 0)
+                       log_err("fio: nice %s\n", strerror(errno));
        }
 }