{
CAIPStopNetworkMonitor(CA_ADAPTER_TCP);
+ /* Some times send queue thread fails to terminate as it's worker
+ thread gets blocked at TCP session's socket connect operation.
+ So closing sockets which are in connect operation at the time
+ of termination of adapter would save send queue thread from
+ getting blocked. */
+ CATCPCloseInProgressConnections();
+
#ifndef SINGLE_THREAD
+ // Stop send queue thread.
if (g_sendQueueHandle && g_sendQueueHandle->threadMutex)
{
CAQueueingThreadStop(g_sendQueueHandle);
CATCPDeinitializeQueueHandles();
#endif
+ // Close TCP servers and established connections.
CATCPStopServer();
- //Re-initializing the Globals to start them again
+ // Re-initializing the Globals to start them again.
CAInitializeTCPGlobals();
return CA_STATUS_OK;