[MINOR] sched: permit a task to stay up between calls

If a task wants to stay in the run queue, it is possible. It just
needs to wake itself up. We just want to ensure that a reniced
task will be processed at the right instant.
diff --git a/src/task.c b/src/task.c
index 17d825e..72e3a93 100644
--- a/src/task.c
+++ b/src/task.c
@@ -225,6 +225,13 @@
 				task_queue(t);
 				expire = tick_first_2nz(expire, t->expire);
 			}
+
+			/* if the task has put itself back into the run queue, we want to ensure
+			 * it will be served at the proper time, especially if it's reniced.
+			 */
+			if (unlikely(task_in_rq(t)) && (!eb || tick_is_lt(t->rq.key, eb->key))) {
+				eb = eb32_lookup_ge(&rqueue, rqueue_ticks - TIMER_LOOK_BACK);
+			}
 		}
 	}
 	*next = expire;