javalib: More eagerly terminate virtmgr
The VirtualizationService class holds a singleton reference as
a SoftReference. Since dropping the reference is a signal to terminate
the virtmgr process, we should garbage-collect the object more eagerly
to free up resources. Switch the field to WeakReference.
Bug: 245727626
Test: atest MicrodroidTestApp
Change-Id: I3097b1528851aa2ccde570492db062bbaf17c506
diff --git a/javalib/src/android/system/virtualmachine/VirtualizationService.java b/javalib/src/android/system/virtualmachine/VirtualizationService.java
index 06ef494..75e359f 100644
--- a/javalib/src/android/system/virtualmachine/VirtualizationService.java
+++ b/javalib/src/android/system/virtualmachine/VirtualizationService.java
@@ -23,7 +23,7 @@
import com.android.internal.annotations.GuardedBy;
-import java.lang.ref.SoftReference;
+import java.lang.ref.WeakReference;
/** A running instance of virtmgr that is hosting a VirtualizationService AIDL service. */
class VirtualizationService {
@@ -33,7 +33,7 @@
/* Soft reference caching the last created instance of this class. */
@GuardedBy("VirtualMachineManager.sCreateLock")
- private static SoftReference<VirtualizationService> sInstance;
+ private static WeakReference<VirtualizationService> sInstance;
/*
* Client FD for UDS connection to virtmgr's RpcBinder server. Closing it
@@ -86,7 +86,7 @@
VirtualizationService service = (sInstance == null) ? null : sInstance.get();
if (service == null || !service.isOk()) {
service = new VirtualizationService();
- sInstance = new SoftReference(service);
+ sInstance = new WeakReference(service);
}
return service;
}