diff options
author | Giovanni Di Sirio <gdisirio@gmail.com> | 2018-01-16 15:19:45 +0000 |
---|---|---|
committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2018-01-16 15:19:45 +0000 |
commit | bae22c6d4ba9d0a23ad16159b105964ca8813f0d (patch) | |
tree | 5e983ad92d6860f10a3d7af39aaad2587fb0ff01 /os/common/oslib | |
parent | b685bbe51dde88c5a2654b378b156ae01e8da316 (diff) | |
download | ChibiOS-bae22c6d4ba9d0a23ad16159b105964ca8813f0d.tar.gz ChibiOS-bae22c6d4ba9d0a23ad16159b105964ca8813f0d.tar.bz2 ChibiOS-bae22c6d4ba9d0a23ad16159b105964ca8813f0d.zip |
Fixed bug #911.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11295 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/common/oslib')
-rw-r--r-- | os/common/oslib/include/chmempools.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/os/common/oslib/include/chmempools.h b/os/common/oslib/include/chmempools.h index 5c7666f4e..e2bd4277e 100644 --- a/os/common/oslib/include/chmempools.h +++ b/os/common/oslib/include/chmempools.h @@ -304,8 +304,15 @@ static inline void chGuardedPoolAddI(guarded_memory_pool_t *gmp, void *objp) { * @iclass
*/
static inline void *chGuardedPoolAllocI(guarded_memory_pool_t *gmp) {
-
- return chPoolAllocI(&gmp->pool);
+ void *p;
+
+ p = chPoolAllocI(&gmp->pool);
+ if (p != NULL) {
+ chSemFastWaitI(&gmp->sem);
+ chDbgAssert(chSemGetCounterI(&gmp->sem) >= (cnt_t)0,
+ "semaphore out of sync");
+ }
+ return p;
}
#endif /* CH_CFG_USE_SEMAPHORES == TRUE */
|