From bae22c6d4ba9d0a23ad16159b105964ca8813f0d Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Tue, 16 Jan 2018 15:19:45 +0000 Subject: Fixed bug #911. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11295 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/common/oslib/include/chmempools.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'os/common/oslib/include/chmempools.h') 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 */ -- cgit v1.2.3