#include "list.h"
#include "sched.h"
#include "string.h"
+#include "time.h"
#include "error.h"
static struct list_head pre_select_list, post_select_list;
}
}
+#define SCHED_DEBUG 0
+static inline void call_post_select(struct sched *s, struct task *t)
+{
+#ifndef SCHED_DEBUG
+ t->post_select(s, t);
+#else
+ struct timeval t1, t2, diff;
+ unsigned long pst;
+
+ gettimeofday(&t1, NULL);
+ t->post_select(s, t);
+ gettimeofday(&t2, NULL);
+ tv_diff(&t1, &t2, &diff);
+ pst = tv2ms(&diff);
+ if (pst > 50)
+ PARA_WARNING_LOG("%s: post_select time: %lums\n",
+ t->status, pst);
+#endif
+}
+
static void sched_post_select(struct sched *s)
{
struct task *t, *tmp;
list_for_each_entry_safe(t, tmp, &post_select_list, post_select_node) {
if (t->error >= 0)
- t->post_select(s, t);
+ call_post_select(s, t);
// PARA_INFO_LOG("%s: %d\n", t->status, t->ret);
if (t->error >= 0)
continue;