From 0930e36def6ce62c55d30d744b41ef475374a541 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Tue, 25 Jul 2017 16:21:13 +0200 Subject: try an alternative approach to active span management --- kamon-core/src/main/scala/kamon/util/Mixin.scala | 29 ++++++++++++------------ 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'kamon-core/src/main/scala/kamon/util') diff --git a/kamon-core/src/main/scala/kamon/util/Mixin.scala b/kamon-core/src/main/scala/kamon/util/Mixin.scala index 318679c1..2fd7be24 100644 --- a/kamon-core/src/main/scala/kamon/util/Mixin.scala +++ b/kamon-core/src/main/scala/kamon/util/Mixin.scala @@ -16,30 +16,31 @@ package kamon package util -import kamon.trace.{ActiveSpan, Continuation} +import kamon.trace.Span /** - * Utility trait that marks objects carrying an ActiveSpan.Continuation. + * Utility trait that marks objects carrying a reference to a Span. + * */ -trait HasContinuation { - def continuation: Continuation +trait HasSpan { + def span: Span } -object HasContinuation { - private class Default(val continuation: Continuation) extends HasContinuation +object HasSpan { + private case class Default(span: Span) extends HasSpan /** - * Construct a HasContinuation instance by capturing a continuation from the provided active span. + * Construct a HasSpan instance that references the provided Span. + * */ - def from(activeSpan: ActiveSpan): HasContinuation = { - val continuation = if(activeSpan == null) null else activeSpan.capture() - new Default(continuation) - } + def from(span: Span): HasSpan = + Default(span) /** - * Constructs a new HasContinuation instance using Kamon's tracer currently active span. + * Construct a HasSpan instance that references the currently ActiveSpan in Kamon's tracer. + * */ - def fromTracerActiveSpan(): HasContinuation = - new Default(Kamon.activeSpanContinuation()) + def fromActiveSpan(): HasSpan = + Default(Kamon.activeSpan()) } -- cgit v1.2.3