*/
#include "platform.h"
#include "gnunet_common.h"
+#include "gnunet_os_lib.h"
#include "gnunet_scheduler_lib.h"
#include "gnunet_signal_lib.h"
#include "gnunet_time_lib.h"
*/
enum GNUNET_SCHEDULER_Priority current_priority;
+ /**
+ * How 'nice' are we right now?
+ */
+ int nice_level;
+
};
GNUNET_assert (pos != NULL); /* ready_count wrong? */
sched->ready[p] = pos->next;
sched->ready_count--;
- sched->current_priority = pos->priority;
+ if (sched->current_priority != pos->priority)
+ {
+ sched->current_priority = pos->priority;
+ (void) GNUNET_OS_set_process_priority (0, pos->priority);
+ }
sched->active_task = pos;
tc.sched = sched;
tc.reason = pos->reason;
#if EXECINFO
void *backtrace_array[MAX_TRACE_DEPTH];
#endif
+
+ GNUNET_assert (NULL != task);
t = GNUNET_malloc (sizeof (struct Task));
t->callback = task;
t->callback_cls = task_cls;