aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/rgbled/rgbled.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-10-14 22:18:44 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-10-14 22:18:44 +0200
commitc6b58491bbd7390650723c65b4d4e9ec0922c8de (patch)
tree6abde36292cb498f2f6e1f744bf36d3e42685196 /src/drivers/rgbled/rgbled.cpp
parent16efc0d2d9437c44142503265553e8413f3f9cb3 (diff)
downloadpx4-firmware-c6b58491bbd7390650723c65b4d4e9ec0922c8de.tar.gz
px4-firmware-c6b58491bbd7390650723c65b4d4e9ec0922c8de.tar.bz2
px4-firmware-c6b58491bbd7390650723c65b4d4e9ec0922c8de.zip
Work queue in RGB driver without work_cancel()
Diffstat (limited to 'src/drivers/rgbled/rgbled.cpp')
-rw-r--r--src/drivers/rgbled/rgbled.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/drivers/rgbled/rgbled.cpp b/src/drivers/rgbled/rgbled.cpp
index fedff769b..aeb7e2f78 100644
--- a/src/drivers/rgbled/rgbled.cpp
+++ b/src/drivers/rgbled/rgbled.cpp
@@ -248,6 +248,11 @@ RGBLED::led_trampoline(void *arg)
void
RGBLED::led()
{
+ if (!_should_run) {
+ _running = false;
+ return;
+ }
+
switch (_mode) {
case RGBLED_MODE_BLINK_SLOW:
case RGBLED_MODE_BLINK_NORMAL:
@@ -471,11 +476,6 @@ RGBLED::set_mode(rgbled_mode_t mode)
work_queue(LPWORK, &_work, (worker_t)&RGBLED::led_trampoline, this, 1);
}
- /* if it should stop, then cancel the workq */
- if (!should_run && _running) {
- _running = false;
- work_cancel(LPWORK, &_work);
- }
}
}