From 9969dcd9b83a16b228d5ab92445dc1867640f19d Mon Sep 17 00:00:00 2001 From: Robinson Date: Fri, 24 Feb 2023 20:28:32 +0100 Subject: [PATCH] AeronContext now implements Closable --- src/dorkbox/network/aeron/AeronContext.kt | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/dorkbox/network/aeron/AeronContext.kt b/src/dorkbox/network/aeron/AeronContext.kt index dee9143c..f492d678 100644 --- a/src/dorkbox/network/aeron/AeronContext.kt +++ b/src/dorkbox/network/aeron/AeronContext.kt @@ -5,6 +5,7 @@ import dorkbox.util.NamedThreadFactory import io.aeron.driver.MediaDriver import io.aeron.exceptions.DriverTimeoutException import mu.KLogger +import java.io.Closeable import java.io.File import java.util.concurrent.locks.* @@ -13,15 +14,7 @@ class AeronContext( val type: Class<*> = AeronDriver::class.java, val logger: KLogger, aeronErrorHandler: (error: Throwable) -> Unit -) { - fun close() { - context.close() - - // Destroys this thread group and all of its subgroups. - // This thread group must be empty, indicating that all threads that had been in this thread group have since stopped. - threadFactory.group.destroy() - } - +) : Closeable { companion object { private fun create( config: Configuration, @@ -184,7 +177,7 @@ class AeronContext( } } - logger.debug { "Aeron directory: '${context.aeronDirectory()}'" } + logger.debug { "Aeron context created. Directory: '${context.aeronDirectory()}'" } this.context = context } @@ -192,4 +185,12 @@ class AeronContext( override fun toString(): String { return context.toString() } + + override fun close() { + context.close() + + // Destroys this thread group and all of its subgroups. + // This thread group must be empty, indicating that all threads that had been in this thread group have since stopped. + threadFactory.group.destroy() + } }