From: Manfred L. <man...@we...> - 2012-10-30 09:03:48
|
Hi folks, One more bug found. SysRequestMutexSem doesn't work if a timeout parameter is given. if (usleep(SEM_WAIT_PERIOD * 1000)) { timeout -= SEM_WAIT_PERIOD; } usleep returns 0 if ok and -1 if an error occured. Therefore the if branch will never been reached, and thus timeout will never been decremented. if (usleep(SEM_WAIT_PERIOD * 1000) == 0) { timeout -= SEM_WAIT_PERIOD; } should do. I don't know if the case that usleep returns -1 has to be taken care of? Perhaps this is an really unlikely case. -- Manfred |