NO, I didn't use any atomic statement. Just a normal receive:
event TOS_MsgPtr ReceiveMessage.receive(TOS_MsgPtr m) {
}
but this event is not triggered when other mote sends a message.
Michael Schippling wrote:
you didn't put the for loop in an atomic{} block did you?
That would shut off
someone else (phil?) already sent some better ideas about task
(non-)pre-emption problems. My suggestion was about the code
that you believe is blocking the receive
In any case, assuming things are mostly the same as the micas',
byte-by-byte reception should be occurring in an interrupt
you didn't put the for loop in an atomic{} block did you?
That would shut off interrupts...
MS
Andrea Pacini wrote:
I am using Tmote Sky motes and I noticed that , when a node is doing
something (e.g. when it is doing a for cycle) it can't receive message,
that is Receive.receive() event is
Tasks execute first-come first-serve, and each task executes to
completion before the next task can begin. Execute to completion
means that your task routine must return / exit. Long running and
non-terminating tasks block all other tasks from executing.
Receive.receive is signaled from within