Finalize BulkCursorNative asynchronously
BulkNativeCursor should be closed explicitly but when it is not, it is closed by the finalizer. If the remote process is busy, this can trigger a TimeoutException from the FinalizerWatchdogDaemon. The solution is to make the remote call asynchronous, if the current thread is the finalizer. This is a best-effort mitigation, for clients that fail to explicitly close BulkNativeCursor instances. Tested with an instrumented build that leaked a BulkNativeCursor and waited for the finalizer to clean up the instance. Verified that the remote call was one-way. Flag: android.database.sqlite.oneway_finalizer_close Bug: 368221351 Test: atest * FrameworksCoreTests:android.database * CtsDatabaseTestCases Change-Id: I39b1a4b4465b4b9d66c73c80db0455b1352c7862
Loading
Please register or sign in to comment