On Mar 4 2014 5:59 AM, andy pugh wrote: > On 4 March 2014 12:52, Stuart Stevenson <[email protected]> wrote: > >> Gentlemen, >> It would help me understand and follow some of the current threads >> if I >> knew the definition of atomic as used in this context. > > > It refers to the original meaning of "atomic", "can not be cut". > > Unless steps are taken to prevent it, it would be possible for the > base > thread to interrupt the servo thread while it was half-way through > writing > a new value to a variable, the value read from memory would be some > bytes > from the new number combined with some bytes from the old number. The > value > read would potentially be completely wrong. > > The problem is slightly more complicated here, as we need to make > sure that > complete sets of numbers that are related to each other are written > as-one > with no danger of an interrupting thread reading a bad combination.
You can read about it in a number of places, but Wikipedia gives a decent start <http://en.wikipedia.org/wiki/Atomicity_(programming)> There are other words we should look at using like: Idempotence <http://en.wikipedia.org/wiki/Idempotence> and Concurrency <http://en.wikipedia.org/wiki/Concurrency_(computer_science)> The different threads are concurrent, but there may be things happening which should be treated in an idempotent fashion. I would need to think carefully about that in how various parts of the machine would need to interact with things like e-stop. EBo -- ------------------------------------------------------------------------------ Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce. With Perforce, you get hassle-free workflows. Merge that actually works. Faster operations. Version large binaries. Built-in WAN optimization and the freedom to use Git, Perforce or both. Make the move to Perforce. http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
