Loading src/java/com/android/internal/telephony/PhoneFactory.java +6 −0 Original line number Diff line number Diff line Loading @@ -454,6 +454,12 @@ public class PhoneFactory { } } public static LocalLog getLocalLog(String key) { synchronized (sLocalLogs) { return sLocalLogs.get(key); } } public static void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("PhoneFactory:"); PhoneProxy [] phones = (PhoneProxy[])PhoneFactory.getPhones(); Loading src/java/com/android/internal/telephony/dataconnection/ApnContext.java +26 −2 Original line number Diff line number Diff line Loading @@ -285,7 +285,7 @@ public class ApnContext { } } public void incRefCount(LocalLog log) { public void incRefCount(LocalLog log, int serialNum) { synchronized (mRefCountLock) { if (mRefCount == 0) { // we wanted to leave the last in so it could actually capture the tear down Loading @@ -302,10 +302,11 @@ public class ApnContext { if (mRefCount++ == 0) { mDcTracker.setEnabled(mDcTracker.apnTypeToId(mApnType), true); } DctController.getInstance().ackNetworkExecution(serialNum); } } public void decRefCount(LocalLog log) { public void decRefCount(LocalLog log, int serialNum) { synchronized (mRefCountLock) { // leave the last log alive to capture the actual tear down if (mRefCount != 1) { Loading @@ -320,6 +321,29 @@ public class ApnContext { if (mRefCount-- == 1) { mDcTracker.setEnabled(mDcTracker.apnTypeToId(mApnType), false); } DctController.getInstance().ackNetworkExecution(serialNum); } } public void clearRefCount() { synchronized (mRefCountLock) { for (LocalLog l : mLocalLogs) l.log("ApnContext.clearRefCount from " + mRefCount); mLocalLogs.clear(); mRefCount = 0; mDcTracker.setEnabled(mDcTracker.apnTypeToId(mApnType), false); } } int getRefCount() { return mRefCount; } void copyLogTo(LocalLog other) { synchronized (mRefCountLock) { for (LocalLog l : mLocalLogs) { other.log("-----"); l.copyTo(other, 30); } } } Loading src/java/com/android/internal/telephony/dataconnection/DcSwitchAsyncChannel.java +1 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ public class DcSwitchAsyncChannel extends AsyncChannel { final NetworkRequest request; final int priority; private final LocalLog requestLog; int executionSerialNumber; public RequestInfo(NetworkRequest request, int priority, LocalLog l) { this.request = request; Loading src/java/com/android/internal/telephony/dataconnection/DcTracker.java +36 −6 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ import com.android.internal.telephony.ITelephony; import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.gsm.GSMPhone; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.RILConstants; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.UiccController; Loading Loading @@ -253,20 +254,49 @@ public final class DcTracker extends DcTrackerBase { } @Override public void incApnRefCount(String name, LocalLog log) { public void incApnRefCount(String name, LocalLog log, int serialNum) { ApnContext apnContext = mApnContexts.get(name); log.log("DcTracker.incApnRefCount on " + name + " found " + apnContext); log.log("DcTracker.incApnRefCount on " + name + " found " + apnContext + " (" + serialNum + ")"); if (apnContext != null) { apnContext.incRefCount(log); apnContext.incRefCount(log, serialNum); } } @Override public void decApnRefCount(String name, LocalLog log) { public void decApnRefCount(String name, LocalLog log, int serialNum) { ApnContext apnContext = mApnContexts.get(name); log.log("DcTracker.decApnRefCount on " + name + " found " + apnContext); log.log("DcTracker.decApnRefCount on " + name + " found " + apnContext + " (" + serialNum + ")"); if (apnContext != null) { apnContext.decRefCount(log); apnContext.decRefCount(log, serialNum); } } @Override public int currentRequestCount() { int total = 0; for (ApnContext apnContext: mApnContexts.values()) { total += apnContext.getRefCount(); } return total; } @Override public void clearApnRefCounts() { for (ApnContext apnContext : mApnContexts.values()) { apnContext.clearRefCount(); } } public void snapshotContexts(String logName) { LocalLog l = PhoneFactory.getLocalLog(logName); if (l != null) { for (ApnContext apnContext : mApnContexts.values()) { l.log(apnContext.toString()); apnContext.copyLogTo(l); } } } Loading src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java +8 −2 Original line number Diff line number Diff line Loading @@ -662,9 +662,15 @@ public abstract class DcTrackerBase extends Handler { mPhone.notifyDataActivity(); } abstract public void incApnRefCount(String name, LocalLog log); abstract public void incApnRefCount(String name, LocalLog log, int serialNum); abstract public void decApnRefCount(String name, LocalLog log); abstract public void decApnRefCount(String name, LocalLog log, int serialNum); abstract public int currentRequestCount(); abstract public void clearApnRefCounts(); abstract public void snapshotContexts(String logName); public boolean isApnSupported(String name) { return false; Loading Loading
src/java/com/android/internal/telephony/PhoneFactory.java +6 −0 Original line number Diff line number Diff line Loading @@ -454,6 +454,12 @@ public class PhoneFactory { } } public static LocalLog getLocalLog(String key) { synchronized (sLocalLogs) { return sLocalLogs.get(key); } } public static void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("PhoneFactory:"); PhoneProxy [] phones = (PhoneProxy[])PhoneFactory.getPhones(); Loading
src/java/com/android/internal/telephony/dataconnection/ApnContext.java +26 −2 Original line number Diff line number Diff line Loading @@ -285,7 +285,7 @@ public class ApnContext { } } public void incRefCount(LocalLog log) { public void incRefCount(LocalLog log, int serialNum) { synchronized (mRefCountLock) { if (mRefCount == 0) { // we wanted to leave the last in so it could actually capture the tear down Loading @@ -302,10 +302,11 @@ public class ApnContext { if (mRefCount++ == 0) { mDcTracker.setEnabled(mDcTracker.apnTypeToId(mApnType), true); } DctController.getInstance().ackNetworkExecution(serialNum); } } public void decRefCount(LocalLog log) { public void decRefCount(LocalLog log, int serialNum) { synchronized (mRefCountLock) { // leave the last log alive to capture the actual tear down if (mRefCount != 1) { Loading @@ -320,6 +321,29 @@ public class ApnContext { if (mRefCount-- == 1) { mDcTracker.setEnabled(mDcTracker.apnTypeToId(mApnType), false); } DctController.getInstance().ackNetworkExecution(serialNum); } } public void clearRefCount() { synchronized (mRefCountLock) { for (LocalLog l : mLocalLogs) l.log("ApnContext.clearRefCount from " + mRefCount); mLocalLogs.clear(); mRefCount = 0; mDcTracker.setEnabled(mDcTracker.apnTypeToId(mApnType), false); } } int getRefCount() { return mRefCount; } void copyLogTo(LocalLog other) { synchronized (mRefCountLock) { for (LocalLog l : mLocalLogs) { other.log("-----"); l.copyTo(other, 30); } } } Loading
src/java/com/android/internal/telephony/dataconnection/DcSwitchAsyncChannel.java +1 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ public class DcSwitchAsyncChannel extends AsyncChannel { final NetworkRequest request; final int priority; private final LocalLog requestLog; int executionSerialNumber; public RequestInfo(NetworkRequest request, int priority, LocalLog l) { this.request = request; Loading
src/java/com/android/internal/telephony/dataconnection/DcTracker.java +36 −6 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ import com.android.internal.telephony.ITelephony; import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.gsm.GSMPhone; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.RILConstants; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.UiccController; Loading Loading @@ -253,20 +254,49 @@ public final class DcTracker extends DcTrackerBase { } @Override public void incApnRefCount(String name, LocalLog log) { public void incApnRefCount(String name, LocalLog log, int serialNum) { ApnContext apnContext = mApnContexts.get(name); log.log("DcTracker.incApnRefCount on " + name + " found " + apnContext); log.log("DcTracker.incApnRefCount on " + name + " found " + apnContext + " (" + serialNum + ")"); if (apnContext != null) { apnContext.incRefCount(log); apnContext.incRefCount(log, serialNum); } } @Override public void decApnRefCount(String name, LocalLog log) { public void decApnRefCount(String name, LocalLog log, int serialNum) { ApnContext apnContext = mApnContexts.get(name); log.log("DcTracker.decApnRefCount on " + name + " found " + apnContext); log.log("DcTracker.decApnRefCount on " + name + " found " + apnContext + " (" + serialNum + ")"); if (apnContext != null) { apnContext.decRefCount(log); apnContext.decRefCount(log, serialNum); } } @Override public int currentRequestCount() { int total = 0; for (ApnContext apnContext: mApnContexts.values()) { total += apnContext.getRefCount(); } return total; } @Override public void clearApnRefCounts() { for (ApnContext apnContext : mApnContexts.values()) { apnContext.clearRefCount(); } } public void snapshotContexts(String logName) { LocalLog l = PhoneFactory.getLocalLog(logName); if (l != null) { for (ApnContext apnContext : mApnContexts.values()) { l.log(apnContext.toString()); apnContext.copyLogTo(l); } } } Loading
src/java/com/android/internal/telephony/dataconnection/DcTrackerBase.java +8 −2 Original line number Diff line number Diff line Loading @@ -662,9 +662,15 @@ public abstract class DcTrackerBase extends Handler { mPhone.notifyDataActivity(); } abstract public void incApnRefCount(String name, LocalLog log); abstract public void incApnRefCount(String name, LocalLog log, int serialNum); abstract public void decApnRefCount(String name, LocalLog log); abstract public void decApnRefCount(String name, LocalLog log, int serialNum); abstract public int currentRequestCount(); abstract public void clearApnRefCounts(); abstract public void snapshotContexts(String logName); public boolean isApnSupported(String name) { return false; Loading