twitter-status-bot/.gems/gems/thread_safe-0.3.4
Simon Szustkowski e39f2b025d Fetched missing gems 2014-09-03 10:49:59 +02:00
..
examples Fetched missing gems 2014-09-03 10:49:59 +02:00
ext Fetched missing gems 2014-09-03 10:49:59 +02:00
lib Fetched missing gems 2014-09-03 10:49:59 +02:00
test Fetched missing gems 2014-09-03 10:49:59 +02:00
.travis.yml Fetched missing gems 2014-09-03 10:49:59 +02:00
Gemfile Fetched missing gems 2014-09-03 10:49:59 +02:00
LICENSE Fetched missing gems 2014-09-03 10:49:59 +02:00
README.md Fetched missing gems 2014-09-03 10:49:59 +02:00
Rakefile Fetched missing gems 2014-09-03 10:49:59 +02:00
thread_safe.gemspec Fetched missing gems 2014-09-03 10:49:59 +02:00

README.md

Threadsafe

Build Status

A collection of thread-safe versions of common core Ruby classes.

Installation

Add this line to your application's Gemfile:

gem 'thread_safe'

And then execute:

$ bundle

Or install it yourself as:

$ gem install thread_safe

Usage

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

Contributing

  1. Fork it
  2. Clone it (git clone git@github.com:you/thread_safe.git)
  3. Create your feature branch (git checkout -b my-new-feature)
  4. Build the jar (rake jar) NOTE: Requires JRuby
  5. Install dependencies (bundle install)
  6. Commit your changes (git commit -am 'Added some feature')
  7. Push to the branch (git push origin my-new-feature)
  8. Create new Pull Request