class Yrpc::Interceptors::Registry
Public Class Methods
new()
click to toggle source
# File lib/yrpc/interceptors/register.rb, line 5 def initialize @interceptors ||= [] end
Public Instance Methods
interceptors_mutex(&block)
click to toggle source
ruby 互斥锁,防止线程对资源进行竞争,导致资源不同步
# File lib/yrpc/interceptors/register.rb, line 19 def interceptors_mutex(&block) @interceptors_mutex ||= begin require 'monitor' Monitor.new end @interceptors_mutex.synchronize(&block) end
use(interceptor_class, options = {})
click to toggle source
# File lib/yrpc/interceptors/register.rb, line 9 def use(interceptor_class, options = {}) interceptors_mutex do @interceptors << { klass: interceptor_class, options: options } end end