On Sep 22, 2009 at 17:17, Klaus Darilion <klaus.mailinglists(a)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