diff options
Diffstat (limited to 'demos/ARM7-AT91SAM7X-LWIP-GCC/lwip/arch/sys_arch.c')
-rw-r--r-- | demos/ARM7-AT91SAM7X-LWIP-GCC/lwip/arch/sys_arch.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/demos/ARM7-AT91SAM7X-LWIP-GCC/lwip/arch/sys_arch.c b/demos/ARM7-AT91SAM7X-LWIP-GCC/lwip/arch/sys_arch.c index d9b619e4d..082f2db4d 100644 --- a/demos/ARM7-AT91SAM7X-LWIP-GCC/lwip/arch/sys_arch.c +++ b/demos/ARM7-AT91SAM7X-LWIP-GCC/lwip/arch/sys_arch.c @@ -91,11 +91,12 @@ void sys_sem_signal(sys_sem_t sem) { }
u32_t sys_arch_sem_wait(sys_sem_t sem, u32_t timeout) {
- systime_t time;
+ systime_t time, tmo;
chSysLock();
+ tmo = timeout > 0 ? (systime_t)timeout : TIME_INFINITE;
time = chTimeNow();
- if (chSemWaitTimeoutS(sem, (systime_t)timeout) != RDY_OK)
+ if (chSemWaitTimeoutS(sem, tmo) != RDY_OK)
time = SYS_ARCH_TIMEOUT;
else
time = chTimeNow() - time;
@@ -135,11 +136,12 @@ err_t sys_mbox_trypost(sys_mbox_t mbox, void *msg) { }
u32_t sys_arch_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout) {
- systime_t time;
+ systime_t time, tmo;
chSysLock();
+ tmo = timeout > 0 ? (systime_t)timeout : TIME_INFINITE;
time = chTimeNow();
- if (chMBFetchS(mbox, (msg_t *)msg, (systime_t)timeout) != RDY_OK)
+ if (chMBFetchS(mbox, (msg_t *)msg, tmo) != RDY_OK)
time = SYS_ARCH_TIMEOUT;
else
time = chTimeNow() - time;
|