diff options
author | Giovanni Di Sirio <gdisirio@gmail.com> | 2015-08-21 13:05:18 +0000 |
---|---|---|
committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2015-08-21 13:05:18 +0000 |
commit | 3caa603df42e9215259d6d2256da1c3911e7d8ae (patch) | |
tree | 0df80124d1de38b66e06c6888c987a30b65befcd /os | |
parent | f2f3d60519f35608b22b33059eb6bf40b1cca411 (diff) | |
download | ChibiOS-3caa603df42e9215259d6d2256da1c3911e7d8ae.tar.gz ChibiOS-3caa603df42e9215259d6d2256da1c3911e7d8ae.tar.bz2 ChibiOS-3caa603df42e9215259d6d2256da1c3911e7d8ae.zip |
Fixed bug #632.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8229 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r-- | os/hal/include/hal.h | 4 | ||||
-rw-r--r-- | os/rt/include/ch.h | 4 | ||||
-rw-r--r-- | os/rt/src/chmtx.c | 8 |
3 files changed, 11 insertions, 5 deletions
diff --git a/os/hal/include/hal.h b/os/hal/include/hal.h index 1c6405991..bb1a3281b 100644 --- a/os/hal/include/hal.h +++ b/os/hal/include/hal.h @@ -101,7 +101,7 @@ /**
* @brief HAL version string.
*/
-#define HAL_VERSION "3.0.0"
+#define HAL_VERSION "3.0.1"
/**
* @brief HAL version major number.
@@ -116,7 +116,7 @@ /**
* @brief HAL version patch number.
*/
-#define CH_HAL_PATCH 0
+#define CH_HAL_PATCH 1
/** @} */
/**
diff --git a/os/rt/include/ch.h b/os/rt/include/ch.h index fdfec3823..cb4db9392 100644 --- a/os/rt/include/ch.h +++ b/os/rt/include/ch.h @@ -48,7 +48,7 @@ /**
* @brief Kernel version string.
*/
-#define CH_KERNEL_VERSION "3.0.0"
+#define CH_KERNEL_VERSION "3.0.2"
/**
* @brief Kernel version major number.
@@ -63,7 +63,7 @@ /**
* @brief Kernel version patch number.
*/
-#define CH_KERNEL_PATCH 0
+#define CH_KERNEL_PATCH 2
/** @} */
/* Core headers.*/
diff --git a/os/rt/src/chmtx.c b/os/rt/src/chmtx.c index 03f78a3ce..42c2836ae 100644 --- a/os/rt/src/chmtx.c +++ b/os/rt/src/chmtx.c @@ -375,7 +375,13 @@ void chMtxUnlock(mutex_t *mp) { mp->m_owner = tp;
mp->m_next = tp->p_mtxlist;
tp->p_mtxlist = mp;
- chSchWakeupS(tp, MSG_OK);
+
+ /* Note, not using chSchWakeupS() becuase that function expects the
+ current thread to have the higher or equal priority than the ones
+ in the ready list. This is not necessarily true here because we
+ just changed priority.*/
+ (void) chSchReadyI(tp);
+ chSchRescheduleS();
}
else {
mp->m_owner = NULL;
|