Ultrasound Tornado Rapidly Disrupts Blood Clots
-
A team of researchers at North Carolina State University have developed an
ultrasound transducer that can disrupt blood clots in the brain quickly by
creat...
21 hours ago
When I supported the GNU compilers at Wind River, D'Anne Thompson made it clear that all global variables (both those visible to the linker and those visible throughout a source file) are volatile by *default*.
ReplyDeleteThis is because all the code in VxWorks (before version 6) is in the same address space. Every thread, driver, interrupt handler, etc. This means that between the time a function loads up a global variable and the time it trefers to it again, another thread (running code in another module or other code in the same module) may have changed it.
This situation is exactly why the keyword 'volatile' was invented.
It requires a lot of discipline to minimize or eliminate global or non-static variables from your code,
and it's worth it.