Commit fc67c019 authored by topjohnwu's avatar topjohnwu

Workaround bug in AOSP code

Fix #2983, https://issuetracker.google.com/issues/36984866
parent 2f02f9a5
...@@ -68,8 +68,13 @@ abstract class SuRequestHandler( ...@@ -68,8 +68,13 @@ abstract class SuRequestHandler(
private suspend fun init(name: String) = withContext(Dispatchers.IO) { private suspend fun init(name: String) = withContext(Dispatchers.IO) {
try { try {
if (Const.Version.atLeastCanary()) { if (Const.Version.atLeastCanary()) {
LocalServerSocket(name).use { val server = LocalServerSocket(name)
socket = async { it.accept() }.timedAwait() ?: throw SocketError() // Do NOT use Closable?.use(block) here as LocalServerSocket does
// not implement Closable on older Android platforms
try {
socket = async { server.accept() }.timedAwait() ?: throw SocketError()
} finally {
server.close()
} }
} else { } else {
socket = LocalSocket() socket = LocalSocket()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment