user65434: I am assuming millis() is a Timer ISR function.
If so :
When using millis() as mentioned in Arduino Reference :
unsigned long currentMillis = millis();
What would happen if the ISR asynchronously changes the value being read in a function. I mean if I have read one byte into currentMillis, but millis had changed the value before the remaining 7 bytes are read.
Cheers and TIA

user7508: 
I am assuming millis() is a Timer ISR function.

It is a function that retrieves a value that is updated by and ISR.

What would happen if the ISR asynchronously changes the value being
read in a function.

Cannot happen: the value is read with interrupts disabled.
See for example, in the AVR core:
// disable interrupts while we read timer0_millis or we might get an
// inconsistent value (e.g. in the middle of a write to timer0_millis)
cli();
m = timer0_millis;
SREG = oldSREG;


I mean if I have read one byte into currentMillis, but millis had
changed the value before the remaining 7 bytes are read.

An unsigned long is only 4 bytes. That is, until someone comes with a
64-bit Arduino platform.

65434: <p>I am assuming millis() is a Timer ISR function.
If so :
When using millis() as mentioned in Arduino Reference :
unsigned long currentMillis = millis();
What would happen if the ISR asynchronously changes the value being read in a function. I mean if I have read one byte into currentMillis, but millis had changed the value before the remaining 7 bytes are read.</p>
<p>Cheers and TIA</p>
 7508: <blockquote>
<p>I am assuming millis() is a Timer ISR function.</p>
</blockquote>
<p>It is a function that retrieves a value that is updated by and ISR.</p>
<blockquote>
<p>What would happen if the ISR asynchronously changes the value being
read in a function.</p>
</blockquote>
<p>Cannot happen: the value is read with interrupts disabled.</p>
<p>See for example, <a href="https://github.com/arduino/ArduinoCore-avr/blob/1.8.3/cores/arduino/wiring.c#L70-L74" rel="nofollow noreferrer">in the AVR core</a>:</p>
<pre class="lang-cpp prettyprint-override"><code>// disable interrupts while we read timer0_millis or we might get an
// inconsistent value (e.g. in the middle of a write to timer0_millis)
cli();
m = timer0_millis;
SREG = oldSREG;
</code></pre>
<blockquote>
<p>I mean if I have read one byte into currentMillis, but millis had
changed the value before the remaining 7 bytes are read.</p>
</blockquote>
<p>An <code>unsigned long</code> is only 4 bytes. That is, until someone comes with a
64-bit Arduino platform.</p>
