Niklaus Giger wrote: > Hi > > Examining errors in my big testsuite I discovered that giving a second > time a binary semaphore xenomai returns an error where vxWorks reports OK. >
Thanks for reporting. That patch should fix this issue: diff --git a/vxworks/semLib.c b/vxworks/semLib.c index 62f9326..6467354 100644 --- a/vxworks/semLib.c +++ b/vxworks/semLib.c @@ -104,8 +104,11 @@ static STATUS xsem_give(struct wind_sem *sem) if (syncobj_lock(&sem->u.xsem.sobj, &syns)) return S_objLib_OBJ_ID_ERROR; - if (sem->u.xsem.value >= sem->u.xsem.maxvalue) - ret = S_semLib_INVALID_OPERATION; + if (sem->u.xsem.value >= sem->u.xsem.maxvalue) { + if (sem->u.xsem.maxvalue == INT_MAX) + /* No wrap around. */ + ret = S_semLib_INVALID_OPERATION; + } else if (++sem->u.xsem.value <= 0) syncobj_post(&sem->u.xsem.sobj); > See the attached test case. >> sudo ../../bin/BSys/mak/xeno_vx-solo/debug/tst >> assert passed at testTask line 65 >> assert passed at testTask line 66 >> assert failed at testTask line 67 >> testTask done >> Xenomai/SOLO: failed to remove registry mount point /mnt/xenomai/4569 >> (errno=16) > > Best regards > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Xenomai-core mailing list > Xenomai-core@gna.org > https://mail.gna.org/listinfo/xenomai-core -- Philippe. _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core