Sha256: 84bc5af36641f7c9eef40675133127ae650fbf0a64b627dacb030896fb93b2f1

Contents?: true

Size: 933 Bytes

Versions: 1

Compression:

Stored size: 933 Bytes

Contents

# frozen_string_literal: true

module Coverband
  class Background
    @semaphore = Mutex.new

    def self.start
      return if @background_reporting_running

      logger = Coverband.configuration.logger
      @semaphore.synchronize do
        return if @background_reporting_running
        logger&.debug('Starting background reporting')

        @background_reporting_running = true
        sleep_seconds = Coverband.configuration.background_reporting_sleep_seconds
        Thread.new do
          loop do
            Coverband::Collectors::Coverage.instance.report_coverage(true)
            logger&.debug("Reported coverage from thread. Sleeping for #{sleep_seconds} seconds")
            sleep(sleep_seconds)
          end
        end

        at_exit do
          Coverband::Collectors::Coverage.instance.report_coverage(true)
          logger&.debug('Reported coverage before exit')
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
coverband-4.0.0.alpha lib/coverband/integrations/background.rb