module Concurrent::ThreadSafe::Util
@!visibility private
@!visibility private
@!visibility private
@!visibility private
@!visibility private
@!visibility private
Constants
- CPU_COUNT
TODO (pitr-ch 15-Oct-2016): migrate to Utility::ProcessorCounter
- FIXNUM_BIT_SIZE
TODO (pitr-ch 15-Oct-2016): migrate to Utility::NativeInteger
- MAX_INT
Public Class Methods
allocate()
click to toggle source
Calls superclass method
# File lib/concurrent/thread_safe/util/array_hash_rbx.rb, line 13 def self.allocate obj = super obj.send(:_mon_initialize) obj end
make_synchronized_on_rbx(klass)
click to toggle source
# File lib/concurrent/thread_safe/util/array_hash_rbx.rb, line 6 def self.make_synchronized_on_rbx(klass) klass.class_eval do private def _mon_initialize @_monitor = Monitor.new unless @_monitor # avoid double initialisation end def self.allocate obj = super obj.send(:_mon_initialize) obj end end klass.superclass.instance_methods(false).each do |method| klass.class_eval " def #{method}(*args) @_monitor.synchronize { super } end ", __FILE__, __LINE__ + 1 end end
Public Instance Methods
_mon_initialize()
click to toggle source
# File lib/concurrent/thread_safe/util/array_hash_rbx.rb, line 9 def _mon_initialize @_monitor = Monitor.new unless @_monitor # avoid double initialisation end