Hi! That is certainly the case in CtpRoutingEngineP.nc. I have not checked other files.
Miklos On Tue, Jun 8, 2010 at 12:44 AM, Xiaohui Liu <[email protected]> wrote: > Can we reach the conclusion that all the atomic statements in CTP may not be > necessary since all global variables are accessed in sync context? > > On Sat, Jun 5, 2010 at 6:20 PM, Philip Levis <[email protected]> wrote: >> >> On Jun 5, 2010, at 2:24 PM, Miklos Maroti wrote: >> >> > Hi Xiaohui, >> > >> > The tinyos programming book is right. I have checked that >> > CtpRoutingEngineP and it has no async command or event, so everything >> > is updated in synchronous context. I also do not see that a pointer >> > would be passed out of this module to these variables, so really all >> > updates are synchronous and the atomic statements should be removed. >> > >> > The ncc compiler is doing an excellent job: if you remove the atomic >> > statements and it does not complain, then you do not need the atomic >> > statements. There are only two cases where you need atomic even in >> > sync context: 1) if your variable is updated through a pointer in an >> > atomic context (which is rare, but can happen), 2) you are writing a >> > hardware driver doing some time sensitive stuff and you do not want >> > your code to be interrupted in the middle. >> >> My only thought is that the atomic statement might have been needed for >> Neutron (for safe reboots), and somehow the annotation made its way into the >> main branch? Om? >> >> Phil >> _______________________________________________ >> Tinyos-help mailing list >> [email protected] >> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help > > > > -- > -Xiaohui Liu > _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
