module Concurrent::Synchronization::JRubyAttrVolatile::ClassMethods

Public Instance Methods

attr_volatile(*names) click to toggle source
# File lib/concurrent-ruby/concurrent/synchronization/jruby_object.rb, line 13
          def attr_volatile(*names)
            names.each do |name|

              ivar = :"@volatile_#{name}"

              class_eval <<-RUBY, __FILE__, __LINE__ + 1
                def #{name}
                  instance_variable_get_volatile(:#{ivar})
                end

                def #{name}=(value)
                  instance_variable_set_volatile(:#{ivar}, value)
                end
              RUBY

            end
            names.map { |n| [n, :"#{n}="] }.flatten
          end