Sha256: 736cd6ced13f0735161a8af8c7afd2bddd384fce8d207fcfe6a2ad0ed07d278d

Contents?: true

Size: 1.1 KB

Versions: 7

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module Coverband
  class Background
    @semaphore = Mutex.new
    @thread = nil

    def self.stop
      return unless @thread

      @semaphore.synchronize do
        if @thread
          @thread.exit
          @thread = nil
        end
      end
    end

    def self.running?
      @thread&.alive?
    end

    def self.start
      return if running?

      logger = Coverband.configuration.logger
      @semaphore.synchronize do
        return if running?

        logger.debug('Coverband: Starting background reporting') if Coverband.configuration.verbose
        sleep_seconds = Coverband.configuration.background_reporting_sleep_seconds
        @thread = Thread.new do
          loop do
            Coverband.report_coverage
            Coverband.configuration.view_tracker&.report_views_tracked
            if Coverband.configuration.verbose
              logger.debug("Coverband: background reporting coverage (#{Coverband.configuration.store.type}). Sleeping #{sleep_seconds}s")
            end
            sleep(sleep_seconds)
          end
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
coverband-4.2.4.rc.2 lib/coverband/integrations/background.rb
coverband-4.2.4.rc.1 lib/coverband/integrations/background.rb
coverband-4.2.3 lib/coverband/integrations/background.rb
coverband-4.2.3.rc.2 lib/coverband/integrations/background.rb
coverband-4.2.3.rc.1 lib/coverband/integrations/background.rb
coverband-4.2.2 lib/coverband/integrations/background.rb
coverband-4.2.2.rc.1 lib/coverband/integrations/background.rb