concurrent-ruby-ext 1.1.7 → 1.1.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +31 -0
- data/README.md +40 -20
- data/ext/concurrent-ruby-ext/atomic_boolean.c +0 -1
- data/ext/concurrent-ruby-ext/atomic_fixnum.c +0 -1
- metadata +9 -10
- data/ext/concurrent-ruby-ext/ruby_193_compatible.h +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb05e4c0aa2f0661f905d668c065334f4a6e156f7464a1ddb053734f5389b685
|
4
|
+
data.tar.gz: 0c02839137f7b3e3872e6ac4da05c33baf37e5da0bf7289aa4ca38c3e3ae67f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5797ac3a2bc72fd92cb5d9b5183a23030dafbc429e96aa6de08e0b579a3de364abca9d21dc2ed614918aff3b46ec8afd61b3ab30545ee97c87999653f4c3e7f1
|
7
|
+
data.tar.gz: 138085806a2b5f1b92039dccc7d1580a6bfaed6f7976472787fd5706eef5ba3fb7f235e1f9c3d1c796ad96a11e603f122c4bc142b1364f1166428f868a20a135
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,36 @@
|
|
1
1
|
## Current
|
2
2
|
|
3
|
+
## Release v1.1.10
|
4
|
+
|
5
|
+
concurrent-ruby:
|
6
|
+
|
7
|
+
* (#951) Set the Ruby compatibility version at 2.2
|
8
|
+
* (#939, #933) The `caller_runs` fallback policy no longer blocks reads from the job queue by worker threads
|
9
|
+
* (#938, #761, #652) You can now explicitly `prune_pool` a thread pool (Sylvain Joyeux)
|
10
|
+
* (#937, #757, #670) We switched the Yahoo stock API for demos to Alpha Vantage (Gustavo Caso)
|
11
|
+
* (#932, #931) We changed how `SafeTaskExecutor` handles local jump errors (Aaron Jensen)
|
12
|
+
* (#927) You can use keyword arguments in your initialize when using `Async` (Matt Larraz)
|
13
|
+
* (#926, #639) We removed timeout from `TimerTask` because it wasn't sound, and now it's a no-op with a warning (Jacob Atzen)
|
14
|
+
* (#919) If you double-lock a re-entrant read-write lock, we promote to locked for writing (zp yuan)
|
15
|
+
* (#915) `monotonic_time` now accepts an optional unit parameter, as Ruby's `clock_gettime` (Jean Boussier)
|
16
|
+
|
17
|
+
## Release v1.1.9 (5 Jun 2021)
|
18
|
+
|
19
|
+
concurrent-ruby:
|
20
|
+
|
21
|
+
* (#866) Child promise state not set to :pending immediately after #execute when parent has completed
|
22
|
+
* (#905, #872) Fix RubyNonConcurrentPriorityQueue#delete method
|
23
|
+
* (2df0337d) Make sure locks are not shared on shared when objects are dup/cloned
|
24
|
+
* (#900, #906, #796, #847, #911) Fix Concurrent::Set tread-safety issues on CRuby
|
25
|
+
* (#907) Add new ConcurrentMap backend for TruffleRuby
|
26
|
+
|
27
|
+
## Release v1.1.8 (20 January 2021)
|
28
|
+
|
29
|
+
concurrent-ruby:
|
30
|
+
|
31
|
+
* (#885) Fix race condition in TVar for stale reads
|
32
|
+
* (#884) RubyThreadLocalVar: Do not iterate over hash which might conflict with new pair addition
|
33
|
+
|
3
34
|
## Release v1.1.7 (6 August 2020)
|
4
35
|
|
5
36
|
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,6 +37,8 @@ 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
|
@@ -259,15 +259,11 @@ 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.
|
262
|
+
* MRI 2.2 and above
|
263
|
+
* Latest JRuby 9000
|
264
|
+
* Latest TruffleRuby
|
269
265
|
|
270
|
-
The legacy support for Rubinius is kept but it is no longer maintained
|
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
|
271
267
|
please respond to [#739](https://github.com/ruby-concurrency/concurrent-ruby/issues/739).
|
272
268
|
|
273
269
|
## Usage
|
@@ -353,23 +349,47 @@ and load the appropriate C extensions.
|
|
353
349
|
No gems should depend on `concurrent-ruby-ext`. Doing so will force C extensions on your users. The
|
354
350
|
best practice is to depend on `concurrent-ruby` and let users to decide if they want C extensions.
|
355
351
|
|
352
|
+
## Building the gem
|
353
|
+
|
354
|
+
### Requirements
|
355
|
+
|
356
|
+
* Recent CRuby
|
357
|
+
* JRuby, `rbenv install jruby-9.2.17.0`
|
358
|
+
* Set env variable `CONCURRENT_JRUBY_HOME` to point to it, e.g. `/usr/local/opt/rbenv/versions/jruby-9.2.17.0`
|
359
|
+
* Install Docker, required for Windows builds
|
360
|
+
|
361
|
+
### Publishing the Gem
|
362
|
+
|
363
|
+
* Update `version.rb`
|
364
|
+
* Update the CHANGELOG
|
365
|
+
* Update the Yard documentation
|
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.
|
370
|
+
* Commit (and push) the changes.
|
371
|
+
* Use `be rake release` to release the gem. It consists
|
372
|
+
of `['release:checks', 'release:build', 'release:test', 'release:publish']` steps. It will ask at the end before
|
373
|
+
publishing anything. Steps can also be executed individually.
|
374
|
+
|
356
375
|
## Maintainers
|
357
376
|
|
358
|
-
*
|
359
|
-
*
|
360
|
-
* [Chris Seaton](https://github.com/chrisseaton)
|
377
|
+
* [Chris Seaton](https://github.com/chrisseaton) — Lead maintainer, point-of-contact.
|
378
|
+
* [Benoit Daloze](https://github.com/eregon) — If Chris is not available Benoit can help.
|
361
379
|
|
362
380
|
### Special Thanks to
|
363
381
|
|
364
|
-
*
|
365
|
-
*
|
366
|
-
*
|
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
|
367
386
|
|
368
|
-
|
387
|
+
to the past maintainers
|
369
388
|
|
370
|
-
*
|
371
|
-
*
|
372
|
-
*
|
389
|
+
* [Petr Chalupa](https://github.com/pitr-ch)
|
390
|
+
* [Michele Della Torre](https://github.com/mighe)
|
391
|
+
* [Paweł Obrok](https://github.com/obrok)
|
392
|
+
* [Lucas Allan](https://github.com/lucasallan)
|
373
393
|
|
374
394
|
and to [Ruby Association](https://www.ruby.or.jp/en/) for sponsoring a project
|
375
395
|
["Enhancing Ruby’s concurrency tooling"](https://www.ruby.or.jp/en/news/20181106) in 2018.
|
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.1.
|
4
|
+
version: 1.1.10
|
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: 2022-03-21 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.1.
|
20
|
+
version: 1.1.10
|
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.1.
|
27
|
+
version: 1.1.10
|
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.
|
@@ -48,12 +48,11 @@ files:
|
|
48
48
|
- ext/concurrent-ruby-ext/atomic_reference.h
|
49
49
|
- ext/concurrent-ruby-ext/extconf.rb
|
50
50
|
- ext/concurrent-ruby-ext/rb_concurrent.c
|
51
|
-
- ext/concurrent-ruby-ext/ruby_193_compatible.h
|
52
51
|
homepage: http://www.concurrent-ruby.com
|
53
52
|
licenses:
|
54
53
|
- MIT
|
55
54
|
metadata: {}
|
56
|
-
post_install_message:
|
55
|
+
post_install_message:
|
57
56
|
rdoc_options: []
|
58
57
|
require_paths:
|
59
58
|
- lib
|
@@ -61,15 +60,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
61
60
|
requirements:
|
62
61
|
- - ">="
|
63
62
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
63
|
+
version: '2.2'
|
65
64
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
65
|
requirements:
|
67
66
|
- - ">="
|
68
67
|
- !ruby/object:Gem::Version
|
69
68
|
version: '0'
|
70
69
|
requirements: []
|
71
|
-
rubygems_version: 3.
|
72
|
-
signing_key:
|
70
|
+
rubygems_version: 3.3.4
|
71
|
+
signing_key:
|
73
72
|
specification_version: 4
|
74
73
|
summary: C extensions to optimize concurrent-ruby under MRI.
|
75
74
|
test_files: []
|
@@ -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
|