I have the following scenario: an app is connected to the cellular network - registered with a data connection open ( 3G in my case ) and is transmitting data. Then there is a loss of network - the device moves outside of coverage, signal strength drops below the threshold, etc., the important thing is that there is no more network. At this point, legato seems to suspend - apps don’t run, they freeze; and instead the device does this:
for about 40 seconds to a minute. After some number of those tx_timeouts(), the device stops trying, decides it’s lost the network and apps resume again from the point where they left off ( but at this point the device is not registered on the network ).
Obviously, losing network connectivity is a normal occurrence that any application should be able to handle, but handling it becomes a problem if your app is suspended from running while the device is busy trying to recover the lost network. Note, this is not the modem service that’s entering a blocking thread, it seems to happen at the kernel level to try to continue transmission. When you’re not transmitting, you don’t see this behavior and you wouldn’t notice it anyway.
Is there any way to prevent this and keep apps running ?