ManageIQ/miq_bot

View on GitHub
lib/threadsafe_service_mixin.rb

Summary

Maintainability
A
0 mins
Test Coverage
module ThreadsafeServiceMixin
  extend ActiveSupport::Concern

  include ServiceMixin

  module ClassMethods
    def call(*args)
      synchronize { super }
    end

    private

    def mutex
      @mutex ||= Mutex.new
    end

    def synchronize
      mutex.synchronize { yield }
    end
  end
end