aboutsummaryrefslogtreecommitdiffstats
path: root/src/chsem.c
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-11-26 16:00:25 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-11-26 16:00:25 +0000
commita62cb84475bb6212554b847751a409a6183f05a0 (patch)
tree86ed708689a985811a5ab13227da50eb64f35bc7 /src/chsem.c
parentf09b56350452478d796fe567fbae6d629912eadd (diff)
downloadChibiOS-a62cb84475bb6212554b847751a409a6183f05a0.tar.gz
ChibiOS-a62cb84475bb6212554b847751a409a6183f05a0.tar.bz2
ChibiOS-a62cb84475bb6212554b847751a409a6183f05a0.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@114 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'src/chsem.c')
-rw-r--r--src/chsem.c19
1 files changed, 3 insertions, 16 deletions
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;
}
/**