aboutsummaryrefslogtreecommitdiffstats
path: root/os/various
diff options
context:
space:
mode:
authorTexZK <texzk@email.it>2015-07-06 21:05:20 +0200
committerTexZK <texzk@email.it>2015-07-06 21:05:20 +0200
commit3ac6c611847f1f20a89315d6d66bc138145ad62d (patch)
tree807d8a891344b9d0fd7f48b461b62439f4a53c05 /os/various
parent0179e6fc83be5f657bf43bb8f672e8d99e5c79cb (diff)
downloadChibiOS-Contrib-3ac6c611847f1f20a89315d6d66bc138145ad62d.tar.gz
ChibiOS-Contrib-3ac6c611847f1f20a89315d6d66bc138145ad62d.tar.bz2
ChibiOS-Contrib-3ac6c611847f1f20a89315d6d66bc138145ad62d.zip
TriBuf demos updated and working
Diffstat (limited to 'os/various')
-rw-r--r--os/various/tribuf.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/os/various/tribuf.c b/os/various/tribuf.c
index cc3987a..689f583 100644
--- a/os/various/tribuf.c
+++ b/os/various/tribuf.c
@@ -65,7 +65,7 @@ void tribufObjectInit(tribuf_t *handler, void *front, void *back, void *orphan)
handler->back = back;
handler->orphan = orphan;
#if (TRIBUF_USE_WAIT == TRUE)
- chSemObjectInit(&handler->ready, 0);
+ chSemObjectInit(&handler->ready, (cnt_t)0);
#else
handler->ready = false;
#endif
@@ -180,7 +180,7 @@ void tribufSwapBackI(tribuf_t *handler) {
handler->back = back;
#if (TRIBUF_USE_WAIT == TRUE)
- if (0 == chSemGetCounterI(&handler->ready))
+ if (chSemGetCounterI(&handler->ready) < (cnt_t)1)
chSemSignalI(&handler->ready);
#else
handler->ready = true;
@@ -205,6 +205,7 @@ void tribufSwapBack(tribuf_t *handler) {
osalSysLock();
tribufSwapBackI(handler);
+ chSchRescheduleS();
osalSysUnlock();
}