summaryrefslogtreecommitdiff
path: root/src/ao_packet_slave.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-11-26 17:39:40 -0800
committerKeith Packard <keithp@keithp.com>2010-12-22 20:39:40 -0800
commit484b44e81b655f1ecb48256095382a56d2839bae (patch)
tree14446271e5d92b9ea9bee040c7787ba48c616229 /src/ao_packet_slave.c
parent07213dc34fa20470a4b36a327a83d75b0f010ebb (diff)
altos: eliminate ao_wake_task
Waking up a task waiting on some random object is a bad idea. Fix the waiters to look for suitable signalling. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/ao_packet_slave.c')
-rw-r--r--src/ao_packet_slave.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/ao_packet_slave.c b/src/ao_packet_slave.c
index 3040d781..39d04bbb 100644
--- a/src/ao_packet_slave.c
+++ b/src/ao_packet_slave.c
@@ -44,12 +44,13 @@ ao_packet_slave_stop(void)
{
if (ao_packet_enable) {
ao_packet_enable = 0;
- ao_radio_recv_abort();
while (ao_packet_task.wchan) {
- ao_wake_task(&ao_packet_task);
- ao_yield();
+ ao_radio_recv_abort();
+ ao_delay(AO_MS_TO_TICKS(10));
}
+ ao_radio_get();
ao_radio_set_telemetry();
+ ao_radio_put();
}
}