concurrent-ruby-ext 1.1.9-x86-mingw32 → 1.2.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/README.md +34 -37
- data/ext/concurrent-ruby-ext/atomic_boolean.c +1 -2
- data/ext/concurrent-ruby-ext/atomic_fixnum.c +1 -2
- 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
- data/lib/concurrent-ruby/concurrent/2.4/concurrent_ruby_ext.so +0 -0
- data/lib/concurrent-ruby/concurrent/2.5/concurrent_ruby_ext.so +0 -0
- data/lib/concurrent-ruby/concurrent/2.6/concurrent_ruby_ext.so +0 -0
- data/lib/concurrent-ruby/concurrent/2.7/concurrent_ruby_ext.so +0 -0
- data/lib/concurrent-ruby/concurrent/3.0/concurrent_ruby_ext.so +0 -0
- data/lib/concurrent-ruby/concurrent/3.1/concurrent_ruby_ext.so +0 -0
- data/lib/concurrent-ruby/concurrent/3.2/concurrent_ruby_ext.so +0 -0
- metadata +9 -9
- data/ext/concurrent-ruby-ext/ruby_193_compatible.h +0 -28
- data/lib/concurrent-ruby/concurrent/2.3/concurrent_ruby_ext.so +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e939756a636341b564c1bea51042bd488095bc45ed5b91ac8db947658ab0ba6
|
4
|
+
data.tar.gz: edc5fea250fadd3c3e9bb78a2e4bd0cd151b2655b30f0c5fb1e50d1e5fbcec4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4514d45626d92edb23f531cd21e07d47135b193933e6ee440e941e8777528c7a429b1edb214797a7583e9817885abecd221ceec3d36a2fcf8e9ccd39bc26fcc2
|
7
|
+
data.tar.gz: b04abd96e39b63d5b74195d8e6ac884a728a1d3710be94d54a0a692f7eb0b893027126b0e56c5dc61ac919f1795ea224c12ebbeb95e4551ea4897c3ef3acfc2a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,29 @@
|
|
1
1
|
## Current
|
2
2
|
|
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)
|
14
|
+
|
15
|
+
concurrent-ruby:
|
16
|
+
|
17
|
+
* (#951) Set the Ruby compatibility version at 2.2
|
18
|
+
* (#939, #933) The `caller_runs` fallback policy no longer blocks reads from the job queue by worker threads
|
19
|
+
* (#938, #761, #652) You can now explicitly `prune_pool` a thread pool (Sylvain Joyeux)
|
20
|
+
* (#937, #757, #670) We switched the Yahoo stock API for demos to Alpha Vantage (Gustavo Caso)
|
21
|
+
* (#932, #931) We changed how `SafeTaskExecutor` handles local jump errors (Aaron Jensen)
|
22
|
+
* (#927) You can use keyword arguments in your initialize when using `Async` (Matt Larraz)
|
23
|
+
* (#926, #639) We removed timeout from `TimerTask` because it wasn't sound, and now it's a no-op with a warning (Jacob Atzen)
|
24
|
+
* (#919) If you double-lock a re-entrant read-write lock, we promote to locked for writing (zp yuan)
|
25
|
+
* (#915) `monotonic_time` now accepts an optional unit parameter, as Ruby's `clock_gettime` (Jean Boussier)
|
26
|
+
|
3
27
|
## Release v1.1.9 (5 Jun 2021)
|
4
28
|
|
5
29
|
concurrent-ruby:
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# Concurrent Ruby
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/concurrent-ruby.svg)](http://badge.fury.io/rb/concurrent-ruby)
|
4
|
-
[![Build Status](https://travis-ci.org/ruby-concurrency/concurrent-ruby.svg?branch=master)](https://travis-ci.org/ruby-concurrency/concurrent-ruby)
|
5
|
-
[![Build status](https://ci.appveyor.com/api/projects/status/iq8aboyuu3etad4w?svg=true)](https://ci.appveyor.com/project/rubyconcurrency/concurrent-ruby)
|
6
4
|
[![License](https://img.shields.io/badge/license-MIT-green.svg)](http://opensource.org/licenses/MIT)
|
7
5
|
[![Gitter chat](https://img.shields.io/badge/IRC%20(gitter)-devs%20%26%20users-brightgreen.svg)](https://gitter.im/ruby-concurrency/concurrent-ruby)
|
8
6
|
|
@@ -39,11 +37,13 @@ The design goals of this gem are:
|
|
39
37
|
appreciate your help. Would you like to contribute? Great! Have a look at
|
40
38
|
[issues with `looking-for-contributor` label](https://github.com/ruby-concurrency/concurrent-ruby/issues?q=is%3Aissue+is%3Aopen+label%3Alooking-for-contributor).** And if you pick something up let us know on the issue.
|
41
39
|
|
40
|
+
You can also get started by triaging issues which may include reproducing bug reports or asking for vital information, such as version numbers or reproduction instructions. If you would like to start triaging issues, one easy way to get started is to [subscribe to concurrent-ruby on CodeTriage](https://www.codetriage.com/ruby-concurrency/concurrent-ruby). [![Open Source Helpers](https://www.codetriage.com/ruby-concurrency/concurrent-ruby/badges/users.svg)](https://www.codetriage.com/ruby-concurrency/concurrent-ruby)
|
41
|
+
|
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,16 +259,9 @@ 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.
|
263
|
-
* JRuby 9000
|
264
|
-
* TruffleRuby
|
265
|
-
* Any Ruby interpreter that is compliant with Ruby 2.0 or newer.
|
266
|
-
|
267
|
-
Actually we still support mri 1.9.3 and jruby 1.7.27 but we are looking at ways how to drop the support.
|
268
|
-
Java 8 is preferred for JRuby but every Java version on which JRuby 9000 runs is supported.
|
269
|
-
|
270
|
-
The legacy support for Rubinius is kept but it is no longer maintained, if you would like to help
|
271
|
-
please respond to [#739](https://github.com/ruby-concurrency/concurrent-ruby/issues/739).
|
262
|
+
* MRI 2.3 and above
|
263
|
+
* Latest JRuby 9000
|
264
|
+
* Latest TruffleRuby
|
272
265
|
|
273
266
|
## Usage
|
274
267
|
|
@@ -278,7 +271,12 @@ Everything within this gem can be loaded simply by requiring it:
|
|
278
271
|
require 'concurrent'
|
279
272
|
```
|
280
273
|
|
281
|
-
|
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
|
+
```
|
282
280
|
|
283
281
|
To use the tools in the Edge gem it must be required separately:
|
284
282
|
|
@@ -364,36 +362,35 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
|
|
364
362
|
|
365
363
|
### Publishing the Gem
|
366
364
|
|
367
|
-
* Update`version.rb`
|
365
|
+
* Update `version.rb`
|
368
366
|
* Update the CHANGELOG
|
369
|
-
*
|
370
|
-
- Add the new version to `docs-source/signpost.md`. Needs to be done only if there are visible changes in the
|
371
|
-
documentation.
|
372
|
-
- Run `bundle exec rake yard` to update the master documentation and signpost.
|
373
|
-
- 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.
|
374
368
|
* Commit (and push) the changes.
|
375
|
-
* Use `
|
376
|
-
of `['release:checks', 'release:build', 'release:test', 'release:publish']` steps.
|
377
|
-
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.
|
378
372
|
|
379
373
|
## Maintainers
|
380
374
|
|
381
|
-
*
|
382
|
-
*
|
383
|
-
|
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)
|
384
379
|
|
385
380
|
### Special Thanks to
|
386
381
|
|
387
|
-
*
|
388
|
-
*
|
389
|
-
*
|
390
|
-
*
|
382
|
+
* [Jerry D'Antonio](https://github.com/jdantonio) for creating the gem
|
383
|
+
* [Brian Durand](https://github.com/bdurand) for the `ref` gem
|
384
|
+
* [Charles Oliver Nutter](https://github.com/headius) for the `atomic` and `thread_safe` gems
|
385
|
+
* [thedarkone](https://github.com/thedarkone) for the `thread_safe` gem
|
391
386
|
|
392
387
|
to the past maintainers
|
393
388
|
|
394
|
-
*
|
395
|
-
*
|
396
|
-
*
|
389
|
+
* [Chris Seaton](https://github.com/chrisseaton)
|
390
|
+
* [Petr Chalupa](https://github.com/pitr-ch)
|
391
|
+
* [Michele Della Torre](https://github.com/mighe)
|
392
|
+
* [Paweł Obrok](https://github.com/obrok)
|
393
|
+
* [Lucas Allan](https://github.com/lucasallan)
|
397
394
|
|
398
395
|
and to [Ruby Association](https://www.ruby.or.jp/en/) for sponsoring a project
|
399
396
|
["Enhancing Ruby’s concurrency tooling"](https://www.ruby.or.jp/en/news/20181106) in 2018.
|
@@ -2,14 +2,13 @@
|
|
2
2
|
|
3
3
|
#include "atomic_boolean.h"
|
4
4
|
#include "atomic_reference.h"
|
5
|
-
#include "ruby_193_compatible.h"
|
6
5
|
|
7
6
|
void atomic_boolean_mark(void *value) {
|
8
7
|
rb_gc_mark_maybe((VALUE) value);
|
9
8
|
}
|
10
9
|
|
11
10
|
VALUE atomic_boolean_allocate(VALUE klass) {
|
12
|
-
return
|
11
|
+
return rb_data_object_wrap(klass, (void *) Qfalse, atomic_boolean_mark, NULL);
|
13
12
|
}
|
14
13
|
|
15
14
|
VALUE method_atomic_boolean_initialize(int argc, VALUE* argv, VALUE self) {
|
@@ -2,14 +2,13 @@
|
|
2
2
|
|
3
3
|
#include "atomic_fixnum.h"
|
4
4
|
#include "atomic_reference.h"
|
5
|
-
#include "ruby_193_compatible.h"
|
6
5
|
|
7
6
|
void atomic_fixnum_mark(void *value) {
|
8
7
|
rb_gc_mark_maybe((VALUE) value);
|
9
8
|
}
|
10
9
|
|
11
10
|
VALUE atomic_fixnum_allocate(VALUE klass) {
|
12
|
-
return
|
11
|
+
return rb_data_object_wrap(klass, (void *) Qnil, atomic_fixnum_mark, NULL);
|
13
12
|
}
|
14
13
|
|
15
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
|
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
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.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: x86-mingw32
|
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:
|
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.
|
@@ -47,13 +47,13 @@ files:
|
|
47
47
|
- ext/concurrent-ruby-ext/atomic_reference.h
|
48
48
|
- ext/concurrent-ruby-ext/extconf.rb
|
49
49
|
- ext/concurrent-ruby-ext/rb_concurrent.c
|
50
|
-
- ext/concurrent-ruby-ext/ruby_193_compatible.h
|
51
|
-
- lib/concurrent-ruby/concurrent/2.3/concurrent_ruby_ext.so
|
52
50
|
- lib/concurrent-ruby/concurrent/2.4/concurrent_ruby_ext.so
|
53
51
|
- lib/concurrent-ruby/concurrent/2.5/concurrent_ruby_ext.so
|
54
52
|
- lib/concurrent-ruby/concurrent/2.6/concurrent_ruby_ext.so
|
55
53
|
- lib/concurrent-ruby/concurrent/2.7/concurrent_ruby_ext.so
|
56
54
|
- lib/concurrent-ruby/concurrent/3.0/concurrent_ruby_ext.so
|
55
|
+
- lib/concurrent-ruby/concurrent/3.1/concurrent_ruby_ext.so
|
56
|
+
- lib/concurrent-ruby/concurrent/3.2/concurrent_ruby_ext.so
|
57
57
|
homepage: http://www.concurrent-ruby.com
|
58
58
|
licenses:
|
59
59
|
- MIT
|
@@ -66,17 +66,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
66
66
|
requirements:
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '2.
|
69
|
+
version: '2.4'
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 3.
|
72
|
+
version: 3.3.dev
|
73
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - ">="
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
requirements: []
|
79
|
-
rubygems_version: 3.
|
79
|
+
rubygems_version: 3.3.26
|
80
80
|
signing_key:
|
81
81
|
specification_version: 4
|
82
82
|
summary: C extensions to optimize concurrent-ruby under MRI.
|
@@ -1,28 +0,0 @@
|
|
1
|
-
#ifndef rb_check_arity
|
2
|
-
|
3
|
-
// https://github.com/ruby/ruby/blob/ruby_2_0_0/include/ruby/intern.h
|
4
|
-
// rb_check_arity was added in Ruby 2.0
|
5
|
-
|
6
|
-
#define UNLIMITED_ARGUMENTS (-1)
|
7
|
-
|
8
|
-
static inline VALUE rb_error_arity(int argc, int min, int max)
|
9
|
-
{
|
10
|
-
VALUE err_mess = 0;
|
11
|
-
if (min == max) {
|
12
|
-
err_mess = rb_sprintf("wrong number of arguments (%d for %d)", argc, min);
|
13
|
-
}
|
14
|
-
else if (max == UNLIMITED_ARGUMENTS) {
|
15
|
-
err_mess = rb_sprintf("wrong number of arguments (%d for %d+)", argc, min);
|
16
|
-
}
|
17
|
-
else {
|
18
|
-
err_mess = rb_sprintf("wrong number of arguments (%d for %d..%d)", argc, min, max);
|
19
|
-
}
|
20
|
-
return rb_exc_new3(rb_eTypeError, err_mess);
|
21
|
-
}
|
22
|
-
|
23
|
-
#define rb_check_arity(argc, min, max) do { \
|
24
|
-
if (((argc) < (min)) || ((argc) > (max) && (max) != UNLIMITED_ARGUMENTS)) \
|
25
|
-
rb_exc_raise(rb_error_arity(argc, min, max)); \
|
26
|
-
} while(0)
|
27
|
-
|
28
|
-
#endif
|
Binary file
|