Merge "Add system ui background handlers dispatch and delivery logging thresholds" into udc-dev

This commit is contained in:
Anton Potapov
2023-05-18 13:28:37 +00:00
committed by Android (Google) Code Review
2 changed files with 24 additions and 10 deletions

View File

@@ -166,21 +166,19 @@ open class UserTrackerImpl internal constructor(
} }
override fun onUserSwitching(newUserId: Int, reply: IRemoteCallback?) { override fun onUserSwitching(newUserId: Int, reply: IRemoteCallback?) {
backgroundHandler.run {
handleUserSwitching(newUserId) handleUserSwitching(newUserId)
reply?.sendResult(null) reply?.sendResult(null)
} }
}
override fun onUserSwitchComplete(newUserId: Int) { override fun onUserSwitchComplete(newUserId: Int) {
backgroundHandler.run {
handleUserSwitchComplete(newUserId) handleUserSwitchComplete(newUserId)
} }
}
}, TAG) }, TAG)
} }
@WorkerThread
protected open fun handleBeforeUserSwitching(newUserId: Int) { protected open fun handleBeforeUserSwitching(newUserId: Int) {
Assert.isNotMainThread()
setUserIdInternal(newUserId) setUserIdInternal(newUserId)
} }

View File

@@ -29,18 +29,28 @@ import com.android.systemui.dagger.qualifiers.BroadcastRunning;
import com.android.systemui.dagger.qualifiers.LongRunning; import com.android.systemui.dagger.qualifiers.LongRunning;
import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main;
import dagger.Module;
import dagger.Provides;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import javax.inject.Named; import javax.inject.Named;
import dagger.Module;
import dagger.Provides;
/** /**
* Dagger Module for classes found within the concurrent package. * Dagger Module for classes found within the concurrent package.
*/ */
@Module @Module
public abstract class SysUIConcurrencyModule { public abstract class SysUIConcurrencyModule {
// Slow BG executor can potentially affect UI if UI is waiting for an updated state from this
// thread
private static final Long BG_SLOW_DISPATCH_THRESHOLD = 1000L;
private static final Long BG_SLOW_DELIVERY_THRESHOLD = 1000L;
private static final Long LONG_SLOW_DISPATCH_THRESHOLD = 2500L;
private static final Long LONG_SLOW_DELIVERY_THRESHOLD = 2500L;
private static final Long BROADCAST_SLOW_DISPATCH_THRESHOLD = 1000L;
private static final Long BROADCAST_SLOW_DELIVERY_THRESHOLD = 1000L;
/** Background Looper */ /** Background Looper */
@Provides @Provides
@SysUISingleton @SysUISingleton
@@ -49,6 +59,8 @@ public abstract class SysUIConcurrencyModule {
HandlerThread thread = new HandlerThread("SysUiBg", HandlerThread thread = new HandlerThread("SysUiBg",
Process.THREAD_PRIORITY_BACKGROUND); Process.THREAD_PRIORITY_BACKGROUND);
thread.start(); thread.start();
thread.getLooper().setSlowLogThresholdMs(BG_SLOW_DISPATCH_THRESHOLD,
BG_SLOW_DELIVERY_THRESHOLD);
return thread.getLooper(); return thread.getLooper();
} }
@@ -60,6 +72,8 @@ public abstract class SysUIConcurrencyModule {
HandlerThread thread = new HandlerThread("BroadcastRunning", HandlerThread thread = new HandlerThread("BroadcastRunning",
Process.THREAD_PRIORITY_BACKGROUND); Process.THREAD_PRIORITY_BACKGROUND);
thread.start(); thread.start();
thread.getLooper().setSlowLogThresholdMs(BROADCAST_SLOW_DISPATCH_THRESHOLD,
BROADCAST_SLOW_DELIVERY_THRESHOLD);
return thread.getLooper(); return thread.getLooper();
} }
@@ -71,6 +85,8 @@ public abstract class SysUIConcurrencyModule {
HandlerThread thread = new HandlerThread("SysUiLng", HandlerThread thread = new HandlerThread("SysUiLng",
Process.THREAD_PRIORITY_BACKGROUND); Process.THREAD_PRIORITY_BACKGROUND);
thread.start(); thread.start();
thread.getLooper().setSlowLogThresholdMs(LONG_SLOW_DISPATCH_THRESHOLD,
LONG_SLOW_DELIVERY_THRESHOLD);
return thread.getLooper(); return thread.getLooper();
} }