On Sep 19, 2010, at 1:27 AM, Eric Decker wrote: > > Under heavy loads and just the right circumstances this can cause an in use > receive slot to become > unlocked causing a packet loss. The unlocked slot will get used for a new > incoming packet. The packet > contained in the slot's msg buffer will be lost and the msg buffer reused for > the new incoming packet. >
Can you walk me through the code execution that causes this to happen? endPacket(SUCCESS) causes a buffer swap in SerialDispatcherP. Is the issue when both buffers are locked in SerialDispatcherP? I.e., buffer A is locked buffer A completes, remains locked buffer B is locked buffer B completes, nosync unlocks A before it is ready? I guess this suggests that there are really three states: unlocked, in-progress, and complete. nosync should unlock an in-progress buffer but not a complete one. But it would be really helpful if you could write down the exact code execution that makes this happen. For a task to be delayed for so long is, well, pretty long... Phil _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
