Hi Galen,
Thanks for your reply. I'm going to ask for more assistance from you regarding the following:
1) "You are correct that if you are running a large block of code during this loop then now(no) connections will get processed during this time as there is only one thread of control."
Would you be able to shed a bit more light on why the loop function seems to lock up while the pymodbus server itself continues functioning? i.e. the server doesn't go offline, it just serves stale data
2) "The solution to this is to use a defer heavy work to a bottom half worker thread or perform the work in another thread and update in this reactor callback."
I don't do very much python work and even less of twisted. Would you be able to point me to a few examples? I'm assuming some sort of call by address, with the data refresh function handled elsewhere so the pymodbus only updates registers instead of waiting for the data refresh to be completed before it can update register values?
To give a little more context, I'm actually trying to present values from several API json returns (updating at different intervals) as modbus registers. The total amount of data is about 80 values spread across 4 function calls. Putting them all together in one call locks up very reliably. I've split them into smaller blocks but am still getting stymied on the largest block which generates about 40 data points.