From a62cb84475bb6212554b847751a409a6183f05a0 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Mon, 26 Nov 2007 16:00:25 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@114 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- src/chsem.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) (limited to 'src/chsem.c') diff --git a/src/chsem.c b/src/chsem.c index df783dc7a..61fff37a1 100644 --- a/src/chsem.c +++ b/src/chsem.c @@ -116,7 +116,7 @@ static void wakeup(void *p) { #ifdef CH_USE_DEBUG if (((Thread *)p)->p_state != PRWTSEM) - chDbgPanic("chsem.c, wakeup()\r\n"); + chDbgPanic("chsem.c, wakeup()"); #endif chSemFastSignalI(((Thread *)p)->p_semp); chSchReadyI(dequeue(p), RDY_TIMEOUT); @@ -133,23 +133,10 @@ t_msg chSemWaitTimeout(Semaphore *sp, t_time time) { chSysLock(); - if (--sp->s_cnt < 0) { - VirtualTimer vt; - - chVTSetI(&vt, time, wakeup, currp); - fifo_insert(currp, &sp->s_queue); - currp->p_semp = sp; - chSchGoSleepS(PRWTSEM); - msg = currp->p_rdymsg; - if (chVTIsArmedI(&vt)) - chVTResetI(&vt); - - chSysUnlock(); - return msg; - } + msg = chSemWaitTimeoutS(sp, time); chSysUnlock(); - return RDY_OK; + return msg; } /** -- cgit v1.2.3