There's a bug in the TinyOS 1.x scheduler which can cause posted tasks
to sit in the task queue until the next interrupt (which might be
forever in some cases...). The fix requires each platform to provide a
__nesc_atomic_sleep function which atomically enables interrupts and
puts the mote in some sleep mode. This function will replace the
current TOSH_sleep function which justs puts the mote in some sleep
mode.

I will check in the change to the scheduler on Friday, along with
__nesc_atomic_sleep functions for atmel and msp430-based platforms. If
you're responsible for a mote based on some other architecture, you
will need to define your own __nesc_atomic_sleep function.

For those who are curious, __nesc_atomic_sleep is necessary for the
same reason that pthread_cond_wait atomically unlocks a mutex and
waits for a signal...

David Gay

_______________________________________________
Tinyos-users mailing list
[email protected]
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-users

Reply via email to