Module ThreadSafe
In: lib/thread_safe.rb
lib/thread_safe/non_concurrent_cache_backend.rb
lib/thread_safe/mri_cache_backend.rb
lib/thread_safe/cache.rb
lib/thread_safe/atomic_reference_cache_backend.rb
lib/thread_safe/version.rb
lib/thread_safe/synchronized_cache_backend.rb
lib/thread_safe/util/atomic_reference.rb
lib/thread_safe/util/cheap_lockable.rb
lib/thread_safe/util/volatile.rb
lib/thread_safe/util/volatile_tuple.rb
lib/thread_safe/util/xor_shift_random.rb
lib/thread_safe/util/power_of_two_tuple.rb
lib/thread_safe/util/striped64.rb
lib/thread_safe/util/adder.rb
lib/thread_safe/util.rb

Methods

Classes and Modules

Module ThreadSafe::Util
Class ThreadSafe::Array
Class ThreadSafe::AtomicReferenceCacheBackend
Class ThreadSafe::Hash
Class ThreadSafe::MriCacheBackend
Class ThreadSafe::NonConcurrentCacheBackend
Class ThreadSafe::SynchronizedCacheBackend

Constants

NULL = Object.new   Various classes within allows for nil values to be stored, so a special NULL token is required to indicate the "nil-ness".
Array = ::Array   Because MRI never runs code in parallel, the existing non-thread-safe structures should usually work fine.
Hash = ::Hash
ConcurrentCacheBackend = if defined?(RUBY_ENGINE)
VERSION = "0.3.6"

Public Class methods

Public Instance methods

[Validate]