concurrent-ruby-ext 1.1.10 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/README.md +21 -20
- data/ext/concurrent-ruby-ext/atomic_boolean.c +1 -1
- data/ext/concurrent-ruby-ext/atomic_fixnum.c +1 -1
- data/ext/concurrent-ruby-ext/atomic_reference.c +2 -2
- data/ext/concurrent-ruby-ext/extconf.rb +6 -1
- data/ext/concurrent-ruby-ext/rb_concurrent.c +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95608e3775b254331092b8063e0179250bb984dc1aa37b479587e9bf059cfe55
|
4
|
+
data.tar.gz: f552001cd3ab972ae8599596ac281c5ff9fbf0c7c12ce175e12edbdcb8000301
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 571fa415dc2421f27d844e816f0f2f704c96c76e9a1fd89e4102acfd530b7bea02f594ffb78faab107ca8eb81dbafd8ddf6736ce2564f9182a64bba77ff342e2
|
7
|
+
data.tar.gz: 620b83979408db1743ff783a3882c9e2e48a886ae9e341dc282827ca1cd0ba2bcfafc94a92df0a4cac872a0edeffc8355eb20da3f457758c2fa6e8097860f838
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
## Current
|
2
2
|
|
3
|
-
## Release v1.
|
3
|
+
## Release v1.2.0 (23 Jan 2023)
|
4
|
+
|
5
|
+
* (#962) Fix ReentrantReadWriteLock to use the same granularity for locals as for Mutex it uses.
|
6
|
+
* (#983) Add FiberLocalVar
|
7
|
+
* (#934) concurrent-ruby now supports requiring individual classes (public classes listed in the docs), e.g., `require 'concurrent/map'`
|
8
|
+
* (#976) Let `Promises.any_fulfilled_future` take an `Event`
|
9
|
+
* Improve documentation of various classes
|
10
|
+
* (#975) Set the Ruby compatibility version at 2.3
|
11
|
+
* (#972) Remove Rubinius-related code
|
12
|
+
|
13
|
+
## Release v1.1.10 (22 Mar 2022)
|
4
14
|
|
5
15
|
concurrent-ruby:
|
6
16
|
|
data/README.md
CHANGED
@@ -42,8 +42,8 @@ You can also get started by triaging issues which may include reproducing bug re
|
|
42
42
|
## Thread Safety
|
43
43
|
|
44
44
|
*Concurrent Ruby makes one of the strongest thread safety guarantees of any Ruby concurrency
|
45
|
-
library, providing consistent behavior and guarantees on all
|
46
|
-
(MRI/CRuby, JRuby,
|
45
|
+
library, providing consistent behavior and guarantees on all three main Ruby interpreters
|
46
|
+
(MRI/CRuby, JRuby, TruffleRuby).*
|
47
47
|
|
48
48
|
Every abstraction in this library is thread safe. Specific thread safety guarantees are documented
|
49
49
|
with each abstraction.
|
@@ -58,9 +58,9 @@ other Ruby library, many of which support the mantra of
|
|
58
58
|
Concurrent Ruby is also the only Ruby library which provides a full suite of thread safe and
|
59
59
|
immutable variable types and data structures.
|
60
60
|
|
61
|
-
We've also initiated discussion to document [memory model](docs-source/synchronization.md) of Ruby which
|
62
|
-
would provide consistent behaviour and guarantees on all
|
63
|
-
(MRI/CRuby, JRuby,
|
61
|
+
We've also initiated discussion to document the [memory model](docs-source/synchronization.md) of Ruby which
|
62
|
+
would provide consistent behaviour and guarantees on all three main Ruby interpreters
|
63
|
+
(MRI/CRuby, JRuby, TruffleRuby).
|
64
64
|
|
65
65
|
## Features & Documentation
|
66
66
|
|
@@ -259,13 +259,10 @@ be obeyed though. Features developed in `concurrent-ruby-edge` are expected to m
|
|
259
259
|
|
260
260
|
## Supported Ruby versions
|
261
261
|
|
262
|
-
* MRI 2.
|
262
|
+
* MRI 2.3 and above
|
263
263
|
* Latest JRuby 9000
|
264
264
|
* Latest TruffleRuby
|
265
265
|
|
266
|
-
The legacy support for Rubinius is kept for the moment but it is no longer maintained and is liable to be removed. If you would like to help
|
267
|
-
please respond to [#739](https://github.com/ruby-concurrency/concurrent-ruby/issues/739).
|
268
|
-
|
269
266
|
## Usage
|
270
267
|
|
271
268
|
Everything within this gem can be loaded simply by requiring it:
|
@@ -274,7 +271,12 @@ Everything within this gem can be loaded simply by requiring it:
|
|
274
271
|
require 'concurrent'
|
275
272
|
```
|
276
273
|
|
277
|
-
|
274
|
+
You can also require a specific abstraction [part of the public documentation](https://ruby-concurrency.github.io/concurrent-ruby/master/index.html) since concurrent-ruby 1.2.0, for example:
|
275
|
+
```ruby
|
276
|
+
require 'concurrent/map'
|
277
|
+
require 'concurrent/atomic/atomic_reference'
|
278
|
+
require 'concurrent/executor/fixed_thread_pool'
|
279
|
+
```
|
278
280
|
|
279
281
|
To use the tools in the Edge gem it must be required separately:
|
280
282
|
|
@@ -362,20 +364,18 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
|
|
362
364
|
|
363
365
|
* Update `version.rb`
|
364
366
|
* Update the CHANGELOG
|
365
|
-
*
|
366
|
-
- Add the new version to `docs-source/signpost.md`. Needs to be done only if there are visible changes in the
|
367
|
-
documentation.
|
368
|
-
- Run `bundle exec rake yard` to update the master documentation and signpost.
|
369
|
-
- Run `bundle exec rake yard:<new-version>` to add or update the documentation of the new version.
|
367
|
+
* Add the new version to `docs-source/signpost.md`. Needs to be done only if there are visible changes in the documentation.
|
370
368
|
* Commit (and push) the changes.
|
371
|
-
* Use `
|
372
|
-
of `['release:checks', 'release:build', 'release:test', 'release:publish']` steps.
|
373
|
-
publishing anything. Steps can also be executed individually.
|
369
|
+
* Use `bundle exec rake release` to release the gem.
|
370
|
+
It consists of `['release:checks', 'release:build', 'release:test', 'release:publish']` steps.
|
371
|
+
It will ask at the end before publishing anything. Steps can also be executed individually.
|
374
372
|
|
375
373
|
## Maintainers
|
376
374
|
|
377
|
-
* [
|
378
|
-
* [
|
375
|
+
* [Benoit Daloze](https://github.com/eregon)
|
376
|
+
* [Matthew Draper](https://github.com/matthewd)
|
377
|
+
* [Rafael França](https://github.com/rafaelfranca)
|
378
|
+
* [Samuel Williams](https://github.com/ioquatix)
|
379
379
|
|
380
380
|
### Special Thanks to
|
381
381
|
|
@@ -386,6 +386,7 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
|
|
386
386
|
|
387
387
|
to the past maintainers
|
388
388
|
|
389
|
+
* [Chris Seaton](https://github.com/chrisseaton)
|
389
390
|
* [Petr Chalupa](https://github.com/pitr-ch)
|
390
391
|
* [Michele Della Torre](https://github.com/mighe)
|
391
392
|
* [Paweł Obrok](https://github.com/obrok)
|
@@ -8,7 +8,7 @@ void atomic_boolean_mark(void *value) {
|
|
8
8
|
}
|
9
9
|
|
10
10
|
VALUE atomic_boolean_allocate(VALUE klass) {
|
11
|
-
return
|
11
|
+
return rb_data_object_wrap(klass, (void *) Qfalse, atomic_boolean_mark, NULL);
|
12
12
|
}
|
13
13
|
|
14
14
|
VALUE method_atomic_boolean_initialize(int argc, VALUE* argv, VALUE self) {
|
@@ -8,7 +8,7 @@ void atomic_fixnum_mark(void *value) {
|
|
8
8
|
}
|
9
9
|
|
10
10
|
VALUE atomic_fixnum_allocate(VALUE klass) {
|
11
|
-
return
|
11
|
+
return rb_data_object_wrap(klass, (void *) Qnil, atomic_fixnum_mark, NULL);
|
12
12
|
}
|
13
13
|
|
14
14
|
VALUE method_atomic_fixnum_initialize(int argc, VALUE* argv, VALUE self) {
|
@@ -44,7 +44,7 @@ void ir_mark(void *value) {
|
|
44
44
|
}
|
45
45
|
|
46
46
|
VALUE ir_alloc(VALUE klass) {
|
47
|
-
return
|
47
|
+
return rb_data_object_wrap(klass, (void *) Qnil, ir_mark, NULL);
|
48
48
|
}
|
49
49
|
|
50
50
|
VALUE ir_initialize(int argc, VALUE* argv, VALUE self) {
|
@@ -78,7 +78,7 @@ VALUE ir_get_and_set(VALUE self, VALUE new_value) {
|
|
78
78
|
}
|
79
79
|
|
80
80
|
VALUE ir_compare_and_set(volatile VALUE self, VALUE expect_value, VALUE new_value) {
|
81
|
-
#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
|
81
|
+
#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
|
82
82
|
if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) {
|
83
83
|
return Qtrue;
|
84
84
|
}
|
@@ -1,8 +1,13 @@
|
|
1
1
|
require 'fileutils'
|
2
|
+
require 'mkmf'
|
3
|
+
|
4
|
+
unless RUBY_ENGINE == "ruby"
|
5
|
+
File.write("Makefile", dummy_makefile($srcdir).join(""))
|
6
|
+
exit
|
7
|
+
end
|
2
8
|
|
3
9
|
extension_name = 'concurrent_ruby_ext'
|
4
10
|
|
5
|
-
require 'mkmf'
|
6
11
|
dir_config(extension_name)
|
7
12
|
have_header "libkern/OSAtomic.h"
|
8
13
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: concurrent-ruby-ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jerry D'Antonio
|
8
8
|
- The Ruby Concurrency Team
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2023-01-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - '='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.
|
20
|
+
version: 1.2.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 1.
|
27
|
+
version: 1.2.0
|
28
28
|
description: |2
|
29
29
|
C extensions to optimize the concurrent-ruby gem when running under MRI.
|
30
30
|
Please see http://concurrent-ruby.com for more information.
|
@@ -52,7 +52,7 @@ homepage: http://www.concurrent-ruby.com
|
|
52
52
|
licenses:
|
53
53
|
- MIT
|
54
54
|
metadata: {}
|
55
|
-
post_install_message:
|
55
|
+
post_install_message:
|
56
56
|
rdoc_options: []
|
57
57
|
require_paths:
|
58
58
|
- lib
|
@@ -60,15 +60,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
60
60
|
requirements:
|
61
61
|
- - ">="
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: '2.
|
63
|
+
version: '2.3'
|
64
64
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
requirements: []
|
70
|
-
rubygems_version: 3.3.
|
71
|
-
signing_key:
|
70
|
+
rubygems_version: 3.3.26
|
71
|
+
signing_key:
|
72
72
|
specification_version: 4
|
73
73
|
summary: C extensions to optimize concurrent-ruby under MRI.
|
74
74
|
test_files: []
|