Beispiel #1
0
 /// <summary>
 /// Handles the stopped streamers, disposes and removes them from the list of current steamers.
 /// </summary>
 /// <param name="sender">The streamer which raised this event.</param>
 /// <param name="e">Generic event arguments, not used.</param>
 private void Streamer_Stopped(object sender, AsyncCompletedEventArgs e)
 {
     lock (this.streamers)
     {
         HystrixMetricsStreamer streamer = (HystrixMetricsStreamer)sender;
         streamer.Stopped -= this.Streamer_Stopped;
         streamer.Dispose();
         this.streamers.Remove(streamer);
         if (this.streamers.Count == 0)
         {
             this.sampler.Stop();
         }
     }
 }
Beispiel #2
0
        /// <summary>
        /// Creates and starts a new <see cref="HystrixMetricsStreamer"/> instance.
        /// </summary>
        /// <param name="context">The listener context passed through to the new streamer.</param>
        private void CreateAndStartStreamer(HttpListenerContext context)
        {
            HystrixMetricsStreamer streamer = null;

            try
            {
                streamer          = new HystrixMetricsStreamer(this.sampler, context);
                streamer.Stopped += this.Streamer_Stopped;
                streamer.Start();
                this.streamers.Add(streamer);
            }
            catch
            {
                if (streamer != null)
                {
                    streamer.Dispose();
                }

                throw;
            }
        }