Commit e1553da4 authored by Mygod's avatar Mygod

Remove unused waitWhile

parent ca25482f
...@@ -62,21 +62,11 @@ class ChannelMonitor : Thread("ChannelMonitor"), AutoCloseable { ...@@ -62,21 +62,11 @@ class ChannelMonitor : Thread("ChannelMonitor"), AutoCloseable {
suspend fun wait(channel: SelectableChannel, ops: Int) = suspendCoroutine<Unit> { continuation -> suspend fun wait(channel: SelectableChannel, ops: Int) = suspendCoroutine<Unit> { continuation ->
register(channel, ops) { register(channel, ops) {
it.interestOps(0) it.interestOps(0) // stop listening
continuation.resume(Unit) continuation.resume(Unit)
} }
} }
suspend fun waitWhile(channel: SelectableChannel, ops: Int, condition: () -> Boolean) {
if (condition()) suspendCoroutine<Unit> { continuation ->
register(channel, ops) {
if (condition()) return@register
it.interestOps(0)
continuation.resume(Unit)
}
}
}
override fun run() { override fun run() {
while (running) { while (running) {
if (selector.select() <= 0) continue if (selector.select() <= 0) continue
......
...@@ -135,7 +135,6 @@ class LocalDnsServer(private val localResolver: suspend (String) -> Array<InetAd ...@@ -135,7 +135,6 @@ class LocalDnsServer(private val localResolver: suspend (String) -> Array<InetAd
it.connect(proxy) it.connect(proxy)
val wrapped = remoteDns.tcpWrap(packet) val wrapped = remoteDns.tcpWrap(packet)
while (!it.finishConnect()) monitor.wait(it, SelectionKey.OP_CONNECT) while (!it.finishConnect()) monitor.wait(it, SelectionKey.OP_CONNECT)
// monitor.waitWhile(it, SelectionKey.OP_WRITE) { it.write(wrapped) >= 0 && wrapped.hasRemaining() }
while (it.write(wrapped) >= 0 && wrapped.hasRemaining()) monitor.wait(it, SelectionKey.OP_WRITE) while (it.write(wrapped) >= 0 && wrapped.hasRemaining()) monitor.wait(it, SelectionKey.OP_WRITE)
remoteDns.tcpUnwrap(UDP_PACKET_SIZE, it::read) { monitor.wait(it, SelectionKey.OP_READ) } remoteDns.tcpUnwrap(UDP_PACKET_SIZE, it::read) { monitor.wait(it, SelectionKey.OP_READ) }
} else DatagramChannel.open().use { } else DatagramChannel.open().use {
......
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