diff options
author | Diego Parra <diegolparra@gmail.com> | 2018-01-30 20:30:36 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-30 20:30:36 -0300 |
commit | 50e87dc33fc468628f04f6c18139cf2e6f466100 (patch) | |
tree | 21c9e11312634d9ad4e8669ab1813a0efce5ff15 /kamon-core/src/main | |
parent | 8231d18493e33c44668e4e5a5d45034f155f64e8 (diff) | |
parent | 083c31cb0eb18dce4f2a46d52b3606a92128230b (diff) | |
download | Kamon-50e87dc33fc468628f04f6c18139cf2e6f466100.tar.gz Kamon-50e87dc33fc468628f04f6c18139cf2e6f466100.tar.bz2 Kamon-50e87dc33fc468628f04f6c18139cf2e6f466100.zip |
Merge pull request #508 from ivantopo/issue#502/allow-jvm-to-shutdown-when-no-reporters
turn all Kamon threads into daemon threads, except for reporters
Diffstat (limited to 'kamon-core/src/main')
-rw-r--r-- | kamon-core/src/main/scala/kamon/Kamon.scala | 2 | ||||
-rw-r--r-- | kamon-core/src/main/scala/kamon/ReporterRegistry.scala | 2 | ||||
-rw-r--r-- | kamon-core/src/main/scala/kamon/package.scala | 6 |
3 files changed, 6 insertions, 4 deletions
diff --git a/kamon-core/src/main/scala/kamon/Kamon.scala b/kamon-core/src/main/scala/kamon/Kamon.scala index 562ef615..8f69ab41 100644 --- a/kamon-core/src/main/scala/kamon/Kamon.scala +++ b/kamon-core/src/main/scala/kamon/Kamon.scala @@ -37,7 +37,7 @@ object Kamon extends MetricLookup with ReporterRegistry with Tracer { @volatile private var _filters = Filters.fromConfig(_config) private val _clock = new Clock.Default() - private val _scheduler = Executors.newScheduledThreadPool(schedulerPoolSize(_config), numberedThreadFactory("kamon-scheduler")) + private val _scheduler = Executors.newScheduledThreadPool(schedulerPoolSize(_config), numberedThreadFactory("kamon-scheduler", daemon = true)) private val _metrics = new MetricRegistry(_config, _scheduler) private val _reporterRegistry = new ReporterRegistry.Default(_metrics, _config, _clock) private val _tracer = Tracer.Default(Kamon, _reporterRegistry, _config, _clock) diff --git a/kamon-core/src/main/scala/kamon/ReporterRegistry.scala b/kamon-core/src/main/scala/kamon/ReporterRegistry.scala index bd28e871..92465de8 100644 --- a/kamon-core/src/main/scala/kamon/ReporterRegistry.scala +++ b/kamon-core/src/main/scala/kamon/ReporterRegistry.scala @@ -67,7 +67,7 @@ object ReporterRegistry { private[kamon] class Default(metrics: MetricsSnapshotGenerator, initialConfig: Config, clock: Clock) extends ReporterRegistry with SpanSink { private val logger = LoggerFactory.getLogger(classOf[ReporterRegistry]) - private val registryExecutionContext = Executors.newScheduledThreadPool(2, threadFactory("kamon-reporter-registry")) + private val registryExecutionContext = Executors.newScheduledThreadPool(2, threadFactory("kamon-reporter-registry", daemon = true)) private val reporterCounter = new AtomicLong(0L) private var registryConfiguration = readRegistryConfiguration(initialConfig) diff --git a/kamon-core/src/main/scala/kamon/package.scala b/kamon-core/src/main/scala/kamon/package.scala index c746efa1..d3b25500 100644 --- a/kamon-core/src/main/scala/kamon/package.scala +++ b/kamon-core/src/main/scala/kamon/package.scala @@ -30,18 +30,19 @@ package object kamon { /** * Creates a thread factory that assigns the specified name to all created Threads. */ - def threadFactory(name: String): ThreadFactory = + def threadFactory(name: String, daemon: Boolean = false): ThreadFactory = new ThreadFactory { val defaultFactory = Executors.defaultThreadFactory() override def newThread(r: Runnable): Thread = { val thread = defaultFactory.newThread(r) thread.setName(name) + thread.setDaemon(daemon) thread } } - def numberedThreadFactory(name: String): ThreadFactory = + def numberedThreadFactory(name: String, daemon: Boolean = false): ThreadFactory = new ThreadFactory { val count = new AtomicLong() val defaultFactory = Executors.defaultThreadFactory() @@ -49,6 +50,7 @@ package object kamon { override def newThread(r: Runnable): Thread = { val thread = defaultFactory.newThread(r) thread.setName(name + "-" + count.incrementAndGet().toString) + thread.setDaemon(daemon) thread } } |