From fea81eee7795e769c1e37837d555cab3c6a0a14e Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sat, 28 Apr 2018 15:43:08 +0000 Subject: [PATCH] Small API change for consistency. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11970 110e8d01-0319-4d1e-a829-52ad28d1bb01 --- os/rt/include/chmtx.h | 4 ++-- os/rt/src/chcond.c | 14 ++++++-------- readme.txt | 1 + 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/os/rt/include/chmtx.h b/os/rt/include/chmtx.h index 5f7793bdc..44e9ea42c 100644 --- a/os/rt/include/chmtx.h +++ b/os/rt/include/chmtx.h @@ -139,9 +139,9 @@ static inline bool chMtxQueueNotEmptyS(mutex_t *mp) { * @return A pointer to the next mutex in the stack. * @retval NULL if the stack is empty. * - * @sclass + * @xclass */ -static inline mutex_t *chMtxGetNextMutexS(void) { +static inline mutex_t *chMtxGetNextMutexX(void) { return chThdGetSelfX()->mtxlist; } diff --git a/os/rt/src/chcond.c b/os/rt/src/chcond.c index 1881f1f63..8ee07a814 100644 --- a/os/rt/src/chcond.c +++ b/os/rt/src/chcond.c @@ -204,15 +204,14 @@ msg_t chCondWait(condition_variable_t *cp) { */ msg_t chCondWaitS(condition_variable_t *cp) { thread_t *ctp = currp; - mutex_t *mp; + mutex_t *mp = chMtxGetNextMutexX(); msg_t msg; chDbgCheckClassS(); chDbgCheck(cp != NULL); - chDbgAssert(ctp->mtxlist != NULL, "not owning a mutex"); + chDbgAssert(mp != NULL, "not owning a mutex"); - /* Getting "current" mutex and releasing it.*/ - mp = chMtxGetNextMutexS(); + /* Releasing "current" mutex.*/ chMtxUnlockS(mp); /* Start waiting on the condition variable, on exit the mutex is taken @@ -294,15 +293,14 @@ msg_t chCondWaitTimeout(condition_variable_t *cp, sysinterval_t timeout) { * @sclass */ msg_t chCondWaitTimeoutS(condition_variable_t *cp, sysinterval_t timeout) { - mutex_t *mp; + mutex_t *mp = chMtxGetNextMutexX(); msg_t msg; chDbgCheckClassS(); chDbgCheck((cp != NULL) && (timeout != TIME_IMMEDIATE)); - chDbgAssert(currp->mtxlist != NULL, "not owning a mutex"); + chDbgAssert(mp != NULL, "not owning a mutex"); - /* Getting "current" mutex and releasing it.*/ - mp = chMtxGetNextMutexS(); + /* Releasing "current" mutex.*/ chMtxUnlockS(mp); /* Start waiting on the condition variable, on exit the mutex is taken diff --git a/readme.txt b/readme.txt index 95c3ea8a1..deab2bbd1 100644 --- a/readme.txt +++ b/readme.txt @@ -94,6 +94,7 @@ ***************************************************************************** *** Next *** +- NEW: Change, chMtxGetNextMutexS() renamed to chMtxGetNextMutexX(). - NEW: RT C++ wrapper reworked, now it is mostly inline code, added some new wrappers and methods. Added wrappers for more API functions. BaseThreads are no more descendants of ThreadReference.