[Tinyos Core WG] volatiles in scheduler
Philip Levis
pal at cs.stanford.edu
Thu Jul 10 11:48:09 PDT 2008
On Jul 3, 2008, at 1:14 PM, John Regehr wrote:
> I took a quick look at the volatile variables in SchedulerBasicP and I
> believe that the volatile qualifiers are not needed.
>
> Motivations for removing these would be (1) cleaning up the code (2)
> saving a few bytes of code memory and a few cycles (3) patching a
> bandaid over one of the safe tinyos compiler warnings.
>
> Probably now is not the time but perhaps I'll remove these after 2.1.
>
> Just as a note: ever since David added compiler barriers to
> nesc_atomic_start/end there are only three valid reasons to use
> volatile
> in TinyOS:
>
> - to prevent the compiler from caching racing variables in registers
> (this is never a problem for non-racing variables)
>
> - accessing HW registers
>
> - (very occasionally) in library code to avoid potential warnings if a
> client of the library passes a volatile-qualified argument
John,
You said you looked into this and found removing the volatiles was not
a problem? I ask because removing them would allow safe TinyOS to
avoid a warning from casting away volatile.
Phil
More information about the Tinyos-2.0wg
mailing list