Question about EEPROM.put method

Hello,

I am writing an application where I need to do a controlled software reset in some cases but I need to save data in EEPROM first in order to retrieve them after reset. I am doing the reset in a software manner where I declare the method void(* resetFunc) (void) = 0; on top and then I call the resetFunc(); method to restart.

My question is: Is EEPROM.put guaranteed? Does it return after all data has been written or does it have any kind of buffering in order not to block until the whole write operation is complete? Can I reset just after calling it without danger of loosing the data?

Thank you in advance!

I am writing an application where I need to do a controlled software reset in some cases

I really doubt that.

Is EEPROM.put guaranteed?

Yes.

Does it return after all data has been written

Yes.

does it have any kind of buffering in order not to block until the whole write operation is complete?

You know that you can look at the source code, right. Do that, and answer your own questions.