SipService: fix thread/socket leak

Should call SipSessionGroup.close() instead of closeNotToReceiveCalls() to stop
the SIP stack (which will stop the MessageProcessor thread and close its socket).

Might be related to ANR's reported by:
http://b/issue?id=3021924
http://b/issue?id=3021927

Change-Id: I4ead1d81fc9abac983f5753b825d20bc1cc79866
This commit is contained in:
Hung-ying Tyan
2010-09-22 23:51:57 +08:00
parent 8544560ccc
commit fc51f2c972

View File

@@ -172,7 +172,7 @@ public final class SipService extends ISipService.Stub {
SipSessionGroupExt group = mSipGroups.remove(localProfileUri);
if (group != null) {
notifyProfileRemoved(group.getLocalProfile());
group.closeToNotReceiveCalls();
group.close();
if (isWifiOn() && !anyOpened()) releaseWifiLock();
}
}
@@ -449,9 +449,9 @@ public final class SipService extends ISipService.Stub {
}
}
public void closeToNotReceiveCalls() {
public void close() {
mOpened = false;
mSipGroup.closeToNotReceiveCalls();
mSipGroup.close();
mAutoRegistration.stop();
if (DEBUG) Log.d(TAG, " close: " + getUri() + ": "
+ mIncomingCallBroadcastAction);