Jan Kiszka wrote: > xenomai-git-requ...@gna.org wrote: >> diff --git a/ksrc/skins/posix/syscall.c b/ksrc/skins/posix/syscall.c >> index 6c3ec3a..2a97a2d 100644 >> --- a/ksrc/skins/posix/syscall.c >> +++ b/ksrc/skins/posix/syscall.c >> @@ -1520,7 +1520,7 @@ static int __pthread_cond_wait_prologue(struct pt_regs >> *regs) >> union __xeno_mutex mx, *umx; >> unsigned timed, count; >> struct timespec ts; >> - int err; >> + int err, perr = 0; >> >> ucnd = (union __xeno_cond *)__xn_reg_arg1(regs); >> umx = (union __xeno_mutex *)__xn_reg_arg2(regs); >> @@ -1560,7 +1560,10 @@ static int __pthread_cond_wait_prologue(struct >> pt_regs *regs) >> &mx.shadow_mutex, >> &count, timed, XN_INFINITE); >> >> - if (err == 0 || err == ETIMEDOUT) { >> + switch(err) { >> + case 0: >> + case ETIMEDOUT: >> + perr = errno = err; >> err = -pse51_cond_timedwait_epilogue(cur, &cnd.shadow_cond, >> &mx.shadow_mutex, count); >> if (err == 0 && >> @@ -1569,14 +1572,20 @@ static int __pthread_cond_wait_prologue(struct >> pt_regs *regs) >> &mx.shadow_mutex.lockcnt, >> sizeof(umx->shadow_mutex.lockcnt))) >> return -EFAULT; >> + break; >> + >> + case EINTR: >> + perr = err; > > Minor cleanup: This is not needed as err != 0, so perr will not be > evaluated anymore. Same for native.
In fact, you could even limit perr = err to "case 0:". Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core