lib/l2meter/thread_safe.rb in l2meter-0.4.0 vs lib/l2meter/thread_safe.rb in l2meter-0.4.1
- old
+ new
@@ -9,11 +9,10 @@
extend Forwardable
EMITTER_METHODS = %i[
batch
configuration
- context
count
log
measure
push_context
sample
@@ -30,16 +29,31 @@
@emitter = emitter.freeze
end
def_delegators :receiver, *EMITTER_METHODS
+ def context(*args, &block)
+ value = emitter.context(*args, &block)
+ block_given?? value : clone_with_emitter(value)
+ end
+
def disable!
@disabled = true
end
+ protected
+
+ attr_writer :emitter
+
private
attr_reader :emitter
+
+ def clone_with_emitter(emitter)
+ clone.tap do |ts|
+ ts.emitter = emitter
+ end
+ end
def receiver
@disabled ? null_emitter : current_emitter
end