[Edit 6 Jul '19 My conclusion: all these time variations are due to the router to which the enet shield is connected. After a router factory reset the duration of server.available is and stay at its lower value - depending upon the enet library used - for days and, as time passes, the occurrence of random increase in duration become more frequent resulting sometimes in half working communication such as no email of server half working etc]
Hello to all,
I am struggling to resolve a persistent issue that is now confirmed to be in the call to server.available (called every loop ~3k/sec) and seems the unique instability point of my system.
It happens to last a variable time and I would love to [u]understand what this time depend on[/u] and to try to progress from there.
The execution duration lasts from 80us to 500us (and maybe more) it depends on the specific shield plugged and may depend upon the activity
It can last 80 us and stay at this value for hours despite accesses to the server Than become steady 300us immediately after an access to the server and than become steady 200us immediately following an access of the board as client
With another 5100 shield it may spontaneously jump from steady 80 to steady 300 and revert to 80 immediately following a server access.
On a 5500 shield, it may spontaneously jump from 140 to >255 for 15 mins and up to 12 hours and spontaneously revert to a steady 140.
I admit my difficulty with c++ that makes me lose ends in face of the lib's code
Why does it bother me? First following an increase of the duration the server does not respond until reset which is totally unacceptable (unless some recovery workaround). Second I expect a deterministic behavior in my environment.
Note that it is possible that all is fine with arduino but something is wrong with my router!
Thanks for your time