aboutsummaryrefslogtreecommitdiffstats
path: root/src/include/inline.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/inline.h')
-rw-r--r--src/include/inline.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/include/inline.h b/src/include/inline.h
index 1982fd075..85de20f3f 100644
--- a/src/include/inline.h
+++ b/src/include/inline.h
@@ -26,6 +26,16 @@
* this is true for GCC, not sure about other compilers.
*/
#ifdef CH_OPTIMIZE_SPEED
+static INLINE void prio_insert(Thread *tp, ThreadsQueue *tqp) {
+
+ Thread *cp = tqp->p_next;
+ while ((cp != (Thread *)tqp) && (cp->p_prio >= tp->p_prio))
+ cp = cp->p_next;
+ /* Insertion on p_prev.*/
+ tp->p_prev = (tp->p_next = cp)->p_prev;
+ tp->p_prev->p_next = cp->p_prev = tp;
+}
+
static INLINE void fifo_insert(Thread *tp, ThreadsQueue *tqp) {
tp->p_prev = (tp->p_next = (Thread *)tqp)->p_prev;