diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2007-11-26 16:00:25 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2007-11-26 16:00:25 +0000 |
commit | a62cb84475bb6212554b847751a409a6183f05a0 (patch) | |
tree | 86ed708689a985811a5ab13227da50eb64f35bc7 /src/chsem.c | |
parent | f09b56350452478d796fe567fbae6d629912eadd (diff) | |
download | ChibiOS-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.c | 19 |
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;
}
/**
|