.. | |||
examples | 5 years ago | ||
ext | 5 years ago | ||
lib | 5 years ago | ||
spec | 5 years ago | ||
tasks | 5 years ago | ||
yard-template/ default | 5 years ago | ||
.rspec | 5 years ago | ||
.travis.yml | 5 years ago | ||
.yardopts | 5 years ago | ||
Gemfile | 5 years ago | ||
LICENSE | 5 years ago | ||
README.md | 5 years ago | ||
Rakefile | 5 years ago | ||
thread_safe.gemspec | 5 years ago |
A collection of thread-safe versions of common core Ruby classes.
This code base is now part of the concurrent-ruby gem at https://github.com/ruby-concurrency/concurrent-ruby. The code in this repository is no longer maintained.
Add this line to your application's Gemfile:
gem 'thread_safe'
And then execute:
$ bundle
Or install it yourself as:
$ gem install thread_safe
require 'thread_safe' sa = ThreadSafe::Array.new # supports standard Array.new forms sh = ThreadSafe::Hash.new # supports standard Hash.new forms
ThreadSafe::Cache
also exists, as a hash-like object, and should have much better performance characteristics esp. under high concurrency than ThreadSafe::Hash
. However, ThreadSafe::Cache
is not strictly semantically equivalent to a ruby Hash
-- for instance, it does not necessarily retain ordering by insertion time as Hash
does. For most uses it should do fine though, and we recommend you consider ThreadSafe::Cache
instead of ThreadSafe::Hash
for your concurrency-safe hash needs. It understands some options when created (depending on your ruby platform) that control some of the internals - when unsure just leave them out:
require 'thread_safe' cache = ThreadSafe::Cache.new
git clone git@github.com:you/thread_safe.git
)git checkout -b my-new-feature
)rake jar
) NOTE: Requires JRubybundle install
)git commit -am 'Added some feature'
)git push origin my-new-feature
)