# Copyright (c) 2021 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details. # frozen_string_literal: true require 'contrast/components/interface' module Contrast module Agent # Threads used by Contrast. Any long running thread should be created and managed by our ThreadWatcher class. class Thread < ::Thread include Contrast::Components::Interface access_component :scope # Make our internal code run in Contrast scope. def initialize *args wrapped_block = proc do |block_args| with_contrast_scope do yield(*block_args) end end super(*args, &wrapped_block) end end end end