From d941299149e86750c0758da62f7327bdf4faf07d Mon Sep 17 00:00:00 2001
From: NIIBE Yutaka <gniibe@fsij.org>
Date: Fri, 16 Jun 2017 10:17:19 +0900
Subject: Fix chx_wakeup.

---
 ChangeLog | 2 ++
 chopstx.c | 6 +++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 805c06f..8483c01 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2017-06-16  NIIBE Yutaka  <gniibe@fsij.org>
 
+	* chopstx.c (chx_wakeup): Fix for RUNNING==NULL.
+
 	* mcu/usb-mkl27z.c (std_get_status): Use staic var, not auto.
 
 2017-05-18  NIIBE Yutaka  <gniibe@fsij.org>
diff --git a/chopstx.c b/chopstx.c
index 986bb90..61d4390 100644
--- a/chopstx.c
+++ b/chopstx.c
@@ -1,7 +1,7 @@
 /*
  * chopstx.c - Threads and only threads.
  *
- * Copyright (C) 2013, 2014, 2015, 2016
+ * Copyright (C) 2013, 2014, 2015, 2016, 2017
  *               Flying Stone Technology
  * Author: NIIBE Yutaka <gniibe@fsij.org>
  *
@@ -911,7 +911,7 @@ chx_wakeup (struct chx_pq *pq)
 	  if (tp->parent == &q_timer.q)
 	    chx_timer_dequeue (tp);
 	  chx_ready_enqueue (tp);
-	  if (tp->prio > running->prio)
+	  if (!running || tp->prio > running->prio)
 	    yield = 1;
 	}
       chx_spin_unlock (&px->lock);
@@ -921,7 +921,7 @@ chx_wakeup (struct chx_pq *pq)
       tp = (struct chx_thread *)pq;
       ((struct chx_stack_regs *)tp->tc.reg[REG_SP])->reg[REG_R0] = 1;
       chx_ready_enqueue (tp);
-      if (tp->prio > running->prio)
+      if (!running || tp->prio > running->prio)
 	yield = 1;
     }
 
-- 
cgit v1.2.3