aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-09-03 18:23:37 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-09-03 18:23:37 +0000
commit1a0fead19b521501ec5b7ff7532d6a7b435fdaa6 (patch)
treea244d91bc3b64ba9c8e9f36e294367bc72ec947c
parent14cbeefe5adf3cf46a9d5ad0061ee988cd081db1 (diff)
downloadChibiOS-1a0fead19b521501ec5b7ff7532d6a7b435fdaa6.tar.gz
ChibiOS-1a0fead19b521501ec5b7ff7532d6a7b435fdaa6.tar.bz2
ChibiOS-1a0fead19b521501ec5b7ff7532d6a7b435fdaa6.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2162 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--os/kernel/src/chmtx.c6
-rw-r--r--os/kernel/src/chschd.c6
-rw-r--r--readme.txt2
3 files changed, 12 insertions, 2 deletions
diff --git a/os/kernel/src/chmtx.c b/os/kernel/src/chmtx.c
index 88b6f4ecd..93943bba0 100644
--- a/os/kernel/src/chmtx.c
+++ b/os/kernel/src/chmtx.c
@@ -136,7 +136,11 @@ void chMtxLockS(Mutex *mp) {
break;
#endif
case THD_STATE_READY:
- /* Re-enqueues tp with its new priority on the ready list.*/
+#if CH_DBG_ENABLE_ASSERTS
+ /* Prevents an assertion in chSchReadyI().*/
+ tp->p_state = THD_STATE_CURRENT;
+#endif
+ /* Re-enqueues tp with its new priority on the ready list.*/
chSchReadyI(dequeue(tp));
}
break;
diff --git a/os/kernel/src/chschd.c b/os/kernel/src/chschd.c
index 51987749f..c4a6a3fd0 100644
--- a/os/kernel/src/chschd.c
+++ b/os/kernel/src/chschd.c
@@ -72,6 +72,12 @@ Thread *chSchReadyI(Thread *tp) {
#endif
Thread *cp;
+ /* Integrity check.*/
+ chDbgAssert((tp->p_state != THD_STATE_READY) &&
+ (tp->p_state != THD_STATE_FINAL),
+ "chSchReadyI(), #1",
+ "invalid state");
+
tp->p_state = THD_STATE_READY;
cp = (Thread *)&rlist.r_queue;
do {
diff --git a/readme.txt b/readme.txt
index 62ecf0ed1..1dcfb4c4c 100644
--- a/readme.txt
+++ b/readme.txt
@@ -77,7 +77,7 @@
2.0.3).
- FIX: Fixed a documentation error regarding the ADC driver function
adcStartConversion() (bug 3039890)(backported to 2.0.3).
-- NEW: More assertions added to the semaphores subsystem.
+- NEW: More assertions added to the kernel.
- NEW: New kernel hooks: SYSTEM_TICK_EVENT_HOOK(), SYSTEM_HALT_HOOK().
- NEW: Added board files for the Olimex STM32-H103.
- NEW: New kernel APIs chSysGetIdleThread() and chThdGetTicks(), the new