concurrent-ruby-ext 1.3.5 → 1.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ba65ce838cb29319b0e81c8f788147deeadf7e8ce6af3197a969f763a6fac1ab
|
|
4
|
+
data.tar.gz: b60a861fcb5a35731f392471a1397c1f2b78baf27a8bc7f8004e2826e650c3f0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3f6899c9f9098e6c90933bffa37465ee04bdae25e08844641e2c871ca10787eba5a074f013989bef1e87aba989c26c0e06350074ae56f47b71c4d6c41bc2968e
|
|
7
|
+
data.tar.gz: 27d322cab1cfedeb4025292f6f78e57d9989efd3c0f1ad1793ae0642d269fd6ca5d77b176536c5bbb1538d416d0af2c6cddcacc10c294e6c86f07790a1df50cc
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
## Current
|
|
2
2
|
|
|
3
|
+
## Release v1.3.6 (13 December 2025)
|
|
4
|
+
|
|
5
|
+
concurrent-ruby:
|
|
6
|
+
|
|
7
|
+
* See the [release notes on GitHub](https://github.com/ruby-concurrency/concurrent-ruby/releases/tag/v1.3.6).
|
|
8
|
+
|
|
3
9
|
## Release v1.3.5, edge v0.7.2 (15 January 2025)
|
|
4
10
|
|
|
5
11
|
concurrent-ruby:
|
data/README.md
CHANGED
|
@@ -207,7 +207,7 @@ Deprecated features are still available and bugs are being fixed, but new featur
|
|
|
207
207
|
These are available in the `concurrent-ruby-edge` companion gem.
|
|
208
208
|
|
|
209
209
|
These features are under active development and may change frequently. They are expected not to
|
|
210
|
-
keep backward compatibility (
|
|
210
|
+
keep backward compatibility (they may also lack tests and documentation). Semantic versions will
|
|
211
211
|
be obeyed though. Features developed in `concurrent-ruby-edge` are expected to move to
|
|
212
212
|
`concurrent-ruby` when final.
|
|
213
213
|
|
|
@@ -358,7 +358,8 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
|
|
|
358
358
|
* Recent CRuby
|
|
359
359
|
* JRuby, `rbenv install jruby-9.2.17.0`
|
|
360
360
|
* Set env variable `CONCURRENT_JRUBY_HOME` to point to it, e.g. `/usr/local/opt/rbenv/versions/jruby-9.2.17.0`
|
|
361
|
-
* Install Docker, required for Windows builds
|
|
361
|
+
* Install Docker or Podman, required for Windows builds
|
|
362
|
+
* If `bundle config get path` is set, use `bundle config set --local path.system true` otherwise the `gem name, path: '.'` gems won't be found (Bundler limitation).
|
|
362
363
|
|
|
363
364
|
### Publishing the Gem
|
|
364
365
|
|
|
@@ -378,6 +379,7 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
|
|
|
378
379
|
* [Charles Oliver Nutter](https://github.com/headius)
|
|
379
380
|
* [Ben Sheldon](https://github.com/bensheldon)
|
|
380
381
|
* [Samuel Williams](https://github.com/ioquatix)
|
|
382
|
+
* [Joshua Young](https://github.com/joshuay03)
|
|
381
383
|
|
|
382
384
|
### Special Thanks to
|
|
383
385
|
|
|
@@ -7,8 +7,16 @@ void atomic_boolean_mark(void *value) {
|
|
|
7
7
|
rb_gc_mark_maybe((VALUE) value);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
const rb_data_type_t atomic_boolean_type = {
|
|
11
|
+
"Concurrent::CAtomicBoolean",
|
|
12
|
+
{
|
|
13
|
+
atomic_boolean_mark,
|
|
14
|
+
RUBY_NEVER_FREE,
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
|
|
10
18
|
VALUE atomic_boolean_allocate(VALUE klass) {
|
|
11
|
-
return
|
|
19
|
+
return rb_data_typed_object_wrap(klass, (void *) Qfalse, &atomic_boolean_type);
|
|
12
20
|
}
|
|
13
21
|
|
|
14
22
|
VALUE method_atomic_boolean_initialize(int argc, VALUE* argv, VALUE self) {
|
|
@@ -7,8 +7,16 @@ void atomic_fixnum_mark(void *value) {
|
|
|
7
7
|
rb_gc_mark_maybe((VALUE) value);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
const rb_data_type_t atomic_fixnum_type = {
|
|
11
|
+
"Concurrent::CAtomicFixnum",
|
|
12
|
+
{
|
|
13
|
+
atomic_fixnum_mark,
|
|
14
|
+
RUBY_NEVER_FREE,
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
|
|
10
18
|
VALUE atomic_fixnum_allocate(VALUE klass) {
|
|
11
|
-
return
|
|
19
|
+
return rb_data_typed_object_wrap(klass, (void *) Qnil, &atomic_fixnum_type);
|
|
12
20
|
}
|
|
13
21
|
|
|
14
22
|
VALUE method_atomic_fixnum_initialize(int argc, VALUE* argv, VALUE self) {
|
|
@@ -43,8 +43,16 @@ void ir_mark(void *value) {
|
|
|
43
43
|
rb_gc_mark_maybe((VALUE) value);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
const rb_data_type_t ir_type = {
|
|
47
|
+
"Concurrent::CAtomicReference",
|
|
48
|
+
{
|
|
49
|
+
ir_mark,
|
|
50
|
+
RUBY_NEVER_FREE,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
|
|
46
54
|
VALUE ir_alloc(VALUE klass) {
|
|
47
|
-
return
|
|
55
|
+
return rb_data_typed_object_wrap(klass, (void *) Qnil, &ir_type);
|
|
48
56
|
}
|
|
49
57
|
|
|
50
58
|
VALUE ir_initialize(int argc, VALUE* argv, VALUE self) {
|
|
@@ -78,7 +86,11 @@ VALUE ir_get_and_set(VALUE self, VALUE new_value) {
|
|
|
78
86
|
}
|
|
79
87
|
|
|
80
88
|
VALUE ir_compare_and_set(volatile VALUE self, VALUE expect_value, VALUE new_value) {
|
|
81
|
-
#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >=
|
|
89
|
+
#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101200
|
|
90
|
+
if (atomic_compare_exchange_strong_explicit((_Atomic uintptr_t *)&DATA_PTR(self), &expect_value, new_value, memory_order_seq_cst, memory_order_seq_cst)) {
|
|
91
|
+
return Qtrue;
|
|
92
|
+
}
|
|
93
|
+
#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
|
|
82
94
|
if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) {
|
|
83
95
|
return Qtrue;
|
|
84
96
|
}
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: concurrent-ruby-ext
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jerry D'Antonio
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2025-
|
|
12
|
+
date: 2025-12-13 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.3.
|
|
20
|
+
version: 1.3.6
|
|
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.3.
|
|
27
|
+
version: 1.3.6
|
|
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.
|
|
@@ -67,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '0'
|
|
69
69
|
requirements: []
|
|
70
|
-
rubygems_version: 3.3.
|
|
70
|
+
rubygems_version: 3.3.27
|
|
71
71
|
signing_key:
|
|
72
72
|
specification_version: 4
|
|
73
73
|
summary: C extensions to optimize concurrent-ruby under MRI.
|