Output compare register's double buffer question

Hi, all.
I read the register about output compare unit with double buffer.
I don't understand why use a buffer,it just saying that "The double buffering synchronizes the update of the OCR1x Compare Register to either TOP or BOTTOM of the counting sequence. The synchronization prevents the occurrence of odd-length, non-symmetrical PWM pulses, thereby making the output
glitch-free."

I dont know why double buffer can prevent these things?

Thanks!

yangkai:
Hi, all.
I read the register about output compare unit with double buffer.
I don't understand why use a buffer,it just saying that "The double buffering synchronizes the update of the OCR1x Compare Register to either TOP or BOTTOM of the counting sequence. The synchronization prevents the occurrence of odd-length, non-symmetrical PWM pulses, thereby making the output
glitch-free."

I dont know why double buffer can prevent these things?

Thanks!

With output compare, input capture or any other "matches the timer" function, the timer cannot be stopped or interrupted to handle the event, otherwise the time between timer value changes would not be exactly equal and PWM would be glitchy or captured event times would be inaccurate.

Therefore, when necessary the processor "takes a picture" of the timer at the proper moment and saves it's value for whatever it's intended use is, without upsetting the actual timer.

Imagine a car race. Can you physically stop the cars in order to measure who won, or do you take a photograph and "buffer" the event for later analysis?