On Sep 22, 2009 at 17:17, Klaus Darilion klaus.mailinglists@pernau.at wrote:
Hi Andrei!
What is an ATOMIC parameter?
It means that the config variable can be changed in place. If a variable is not marked as ATOMIC, the new value will be visible only at the next message processing cycle in a process (e.g. if I change foo and foo is not atomic and process 5 is running a route, process 5 will see the new value for foo only after it finishes its job and starts processing a new msg; if foo is ATOMIC it will see the change immediately). It's also an optimization: when an ATOMIC variable changes its value nothing special has to be done, apart from updating the shared config. For a non ATOMIC variable a new config is created with the new value and the global config is replaced with the new one (then when each process starts a new processing cycle it will notice the changed global config, will release its old config and update its config pointer to the new global config).
For more info see doc/cfg.txt.
Andrei