This is what Spark.process() does:
if (SPARK_CLOUD_SOCKETED && !Spark_Communication_Loop())
SPARK_FLASH_UPDATE = 0;
SPARK_CLOUD_CONNECTED = 0;
SPARK_CLOUD_SOCKETED = 0;
While SPARK_WLAN_Loop (which is too long to post here) has the following line
Which appears to attempt to reconnect to the cloud if necessary.
I’m not sure if WLAN_Loop will block if the cloud disappears.
As @mtnscott mentioned, there is no need to talk to the spark cloud with TCPClient if you don’t want to.
Tbh, given that SPARK_WLAN_Loop has the following check:
if(SPARK_FLASH_UPDATE || System.mode() != MANUAL)
In manual mode it looks like Spark.process() isn’t even called.
All in all, I’m not sure exactly what needs to be called to keep up the CC3000-to-Spark connection. I think the answer is WLAN_Loop but I will check later (or someone can correct me)