Using class instance variable for mutex in Ruby

前端 未结 2 2000
半阙折子戏
半阙折子戏 2021-01-19 13:31

Note: The code summary shown below is not a distillation of the code that I had the problem with. I\'ve left this original summary here since someo

2条回答
  •  Happy的楠姐
    2021-01-19 14:05

    Does it happen with a class variable? @@mutex. There might be a race condition with making new class-instances between threads and the new copy of @mutex isn't ready yet. Constants and class variables however, are shared between copies of the class and subclasses. Also, what if you put the @mutex init code in a memoized method such as:

    def self.mutex
      @mutex ||= Mutex.new
    end
    

提交回复
热议问题