public TracingDispatcher(IButterflySender sender, IOptions <ButterflyOptions> options)
 {
     _sender = sender ?? throw new ArgumentNullException(nameof(sender));
     _cancellationTokenSource = new CancellationTokenSource();
     _blockingCollection      = new BlockingCollection <object>(options.Value.BoundedCapacity <= 0 ? BoundedCapacity : options.Value.BoundedCapacity);
     _consumerTask            = Task.Factory.StartNew(Consumer,
                                                      _cancellationTokenSource.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
 }
 public SpanDispatchCallback(IButterflySenderProvider senderProvider, ILoggerFactory loggerFactory)
 {
     _butterflySender = senderProvider.GetSender();
     _logger          = loggerFactory.CreateLogger(typeof(SpanDispatchCallback));
     _filter          = token => token == DispatchableToken.SpanToken;
 }
 public SpanDispatchCallback(IButterflySenderProvider senderProvider)
 {
     _butterflySender = senderProvider.GetSender();
     _filter          = token => token == DispatchableToken.SpanToken;
 }