Sha256: 5cbafb72ee26aa082b909b7fe34df9a9adb9c0007fc97ecf993eb6d321426617

Contents?: true

Size: 1.61 KB

Versions: 11

Compression:

Stored size: 1.61 KB

Contents

# Threadsafe

[![Build Status](https://travis-ci.org/headius/thread_safe.png)](https://travis-ci.org/headius/thread_safe)

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

```ruby
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:


```ruby
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

Version data entries

11 entries across 11 versions & 3 rubygems

Version Path
nanumfont-rails-0.1 vendor/bundle/ruby/2.1.0/gems/thread_safe-0.3.4/README.md
whos_dated_who-0.1.0 vendor/bundle/gems/thread_safe-0.3.4/README.md
whos_dated_who-0.0.1 vendor/bundle/gems/thread_safe-0.3.4/README.md
thread_safe-0.3.4 README.md
thread_safe-0.3.4-java README.md
thread_safe-0.3.3-java README.md
thread_safe-0.3.3 README.md
thread_safe-0.3.2-java README.md
thread_safe-0.3.2 README.md
thread_safe-0.3.1 README.md
thread_safe-0.3.1-java README.md