From 86050408192b8755b9e98c9ab3c4ce417dc345cf Mon Sep 17 00:00:00 2001 From: nathan Date: Wed, 23 Sep 2020 16:59:58 +0200 Subject: [PATCH] Safer closing of the aeron client during close process --- src/dorkbox/network/connection/EndPoint.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/dorkbox/network/connection/EndPoint.kt b/src/dorkbox/network/connection/EndPoint.kt index 077277fa..fc046329 100644 --- a/src/dorkbox/network/connection/EndPoint.kt +++ b/src/dorkbox/network/connection/EndPoint.kt @@ -648,12 +648,14 @@ internal constructor(val type: Class<*>, internal val config: Configuration) : A if (shutdown.compareAndSet(expect = false, update = true)) { logger.info { "Shutting down..." } - aeron.close() - (aeron.context().threadFactory() as NamedThreadFactory).group.destroy() + try { + aeron.close() + } catch (e: Exception) { + logger.error("Error stopping aeron.", e) + } runBlocking { AeronConfig.stopDriver(mediaDriver, logger) - connections.forEach { it.close() } @@ -668,6 +670,8 @@ internal constructor(val type: Class<*>, internal val config: Configuration) : A close0() + (aeron.context().threadFactory() as NamedThreadFactory).group.destroy() + // if we are waiting for shutdown, cancel the waiting thread (since we have shutdown now) shutdownWaiter.cancel() }