Commit 9aa0a4e3 authored by Max Lv's avatar Max Lv

Fix a potential issue in localSocket

parent aa533184
...@@ -41,7 +41,9 @@ abstract class LocalSocketListener(protected val tag: String) : Thread() { ...@@ -41,7 +41,9 @@ abstract class LocalSocketListener(protected val tag: String) : Thread() {
* Inherited class do not need to close input/output streams as they will be closed automatically. * Inherited class do not need to close input/output streams as they will be closed automatically.
*/ */
protected abstract fun accept(socket: LocalSocket) protected abstract fun accept(socket: LocalSocket)
override final fun run() = LocalSocket().use { localSocket -> override final fun run() {
socketFile.delete() // It's a must-have to close and reuse previous local socket.
LocalSocket().use { localSocket ->
val serverSocket = try { val serverSocket = try {
localSocket.bind(LocalSocketAddress(socketFile.absolutePath, LocalSocketAddress.Namespace.FILESYSTEM)) localSocket.bind(LocalSocketAddress(socketFile.absolutePath, LocalSocketAddress.Namespace.FILESYSTEM))
LocalServerSocket(localSocket.fileDescriptor) LocalServerSocket(localSocket.fileDescriptor)
...@@ -59,6 +61,7 @@ abstract class LocalSocketListener(protected val tag: String) : Thread() { ...@@ -59,6 +61,7 @@ abstract class LocalSocketListener(protected val tag: String) : Thread() {
}?.use(this::accept) }?.use(this::accept)
} }
} }
}
fun stopThread() { fun stopThread() {
running = false running = false
......
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