Sha256: c7188e8c9e4a6a764639539c3d356a53b73e8ca6c02fa7966a7fe55c2b7ac3ce
Contents?: true
Size: 707 Bytes
Versions: 22
Compression:
Stored size: 707 Bytes
Contents
# frozen_string_literal: true module Sentry class ThreadedPeriodicWorker include LoggingHelper def initialize(logger, internal) @thread = nil @exited = false @interval = internal @logger = logger end def ensure_thread return false if @exited return true if @thread&.alive? @thread = Thread.new do loop do sleep(@interval) run end end true rescue ThreadError log_debug("[#{self.class.name}] thread creation failed") @exited = true false end def kill log_debug("[#{self.class.name}] thread killed") @exited = true @thread&.kill end end end
Version data entries
22 entries across 22 versions & 2 rubygems