]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - filter_common.c
Introduce prepare_writer_node().
[paraslash.git] / filter_common.c
index 988c357631e38159f1a1a3118c91005d0ca5aca1..a27c2d303ad28d823ae9af20eeb4878f9300cad1 100644 (file)
@@ -296,3 +296,18 @@ int prepare_filter_node(struct filter_node *fn)
        btr_merge(btrn, fn->min_iqs);
        return 1;
 }
+
+void generic_filter_pre_select(struct sched *s, struct task *t)
+{
+       struct filter_node *fn = container_of(t, struct filter_node, task);
+       size_t iqs = btr_get_input_queue_size(fn->btrn);
+
+       t->error = 0;
+       if (iqs < fn->min_iqs)
+               return;
+       if (btr_bytes_pending(fn->btrn) > FILTER_MAX_PENDING)
+               return; /* FIXME, should use reasonable bound on timeout */
+       s->timeout.tv_sec = 0;
+       s->timeout.tv_usec = 1;
+}
+