2
0
mirror of https://github.com/Genymobile/scrcpy synced 2025-08-28 04:48:02 +00:00

Synchronize access to DisplayManager

The DisplayManager and its method getDisplayInfo() may be used from both
the Controller thread and the video (main) thread.
This commit is contained in:
Romain Vimont 2025-05-02 23:03:15 +02:00
parent d63182ed38
commit 92661c4a70
2 changed files with 4 additions and 2 deletions

View File

@ -115,7 +115,8 @@ public final class DisplayManager {
return flags; return flags;
} }
private Method getGetDisplayInfoMethod() throws NoSuchMethodException { // getDisplayInfo() may be used from both the Controller thread and the video (main) thread
private synchronized Method getGetDisplayInfoMethod() throws NoSuchMethodException {
if (getDisplayInfoMethod == null) { if (getDisplayInfoMethod == null) {
getDisplayInfoMethod = manager.getClass().getMethod("getDisplayInfo", int.class); getDisplayInfoMethod = manager.getClass().getMethod("getDisplayInfo", int.class);
} }

View File

@ -54,7 +54,8 @@ public final class ServiceManager {
return windowManager; return windowManager;
} }
public static DisplayManager getDisplayManager() { // The DisplayManager may be used from both the Controller thread and the video (main) thread
public static synchronized DisplayManager getDisplayManager() {
if (displayManager == null) { if (displayManager == null) {
displayManager = DisplayManager.create(); displayManager = DisplayManager.create();
} }