You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+56-41Lines changed: 56 additions & 41 deletions
Original file line number
Diff line number
Diff line change
@@ -38,9 +38,7 @@
38
38
### Supported Ruby versions
39
39
40
40
MRI 1.9.3, 2.0, 2.1, JRuby (1.9 mode), and Rubinius 2.x are supported.
41
-
Although native code is used for performance optimizations on some platforms, all functionality
42
-
is available in pure Ruby. This gem should be fully compatible with any interpreter that is
43
-
compliant with Ruby 1.9.3 or newer.
41
+
This gem should be fully compatible with any interpreter that is compliant with Ruby 1.9.3 or newer.
44
42
45
43
## Features & Documentation
46
44
@@ -59,10 +57,10 @@ This library contains a variety of concurrency abstractions at high and low leve
59
57
*[Async](./doc/async.md): A mixin module that provides simple asynchronous behavior to any standard class/object or object.
60
58
*[Future](./doc/future.md): An asynchronous operation that produces a value.
61
59
*[Dataflow](./doc/dataflow.md): Built on Futures, Dataflow allows you to create a task that will be scheduled when all of its data dependencies are available.
62
-
*[Promise](./doc/promise.md): Similar to Futures, with more features.
60
+
*[Promise](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promise.html): Similar to Futures, with more features.
63
61
*[ScheduledTask](./doc/scheduled_task.md): Like a Future scheduled for a specific future time.
64
62
*[TimerTask](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/TimerTask.html): A Thread that periodically wakes up to perform work at regular intervals.
Because we provide pre-compiled gem builds, users should never need to build the gem manually.
139
-
The build process for this gem is completely automated using open source tools. All of
140
-
the automation components are available in the [ruby-concurrency/rake-compiler-dev-box](https://github.com/ruby-concurrency/rake-compiler-dev-box)
141
-
GitHub repository.
151
+
Potential performance improvements may be achieved under MRI by installing optional C extensions.
152
+
To minimize installation errors the C extensions are available in the `concurrent-ruby-ext` extension
153
+
gem. The extension gem lists `concurrent-ruby` as a dependency so it is not necessary to install both.
154
+
Simply install the extension gen:
142
155
143
-
This gem will compile native C code under MRI and native Java code under JRuby. It is
144
-
also possible to build a pure-Ruby version. All builds have identical functionality.
145
-
The only difference is performance. Additionally, pure-Ruby classes are always available,
146
-
even when using the native optimizations. Please see the [documentation](http://ruby-concurrency.github.io/concurrent-ruby/)
147
-
for more details.
156
+
```shell
157
+
gem install concurrent-ruby-ext
158
+
```
148
159
149
-
To build and package the gem using MRI or JRuby, install the necessary build dependencies and run:
160
+
or add the following line to Gemfile:
150
161
151
-
```shell
152
-
bundle exec rake compile
153
-
bundle exec rake build
162
+
```ruby
163
+
gem 'concurrent-ruby-ext'
154
164
```
155
165
156
-
To build and package a pure-Ruby gem, on *any* platform and interpreter
157
-
(including MRI and JRuby), run:
166
+
and run `bundle install` from your shell.
167
+
168
+
In code it is only necessary to
158
169
159
170
```shell
160
-
BUILD_PURE_RUBY='true' bundle exec rake build
171
+
require 'concurrent'
161
172
```
162
173
174
+
The `concurrent-ruby` gem will automatically detect the presence of the `concurrent-ruby-ext` gem
0 commit comments