Skip to content

Commit 1dc5c1f

Browse files
committed
Merge branch 'master' into prune
2 parents 7e83fbf + 0fe5618 commit 1dc5c1f

File tree

1,344 files changed

+683505
-21101
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,344 files changed

+683505
-21101
lines changed

.github/workflows/ci.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: CI
2+
on: [push, pull_request]
3+
4+
jobs:
5+
build:
6+
runs-on: ubuntu-latest
7+
8+
strategy:
9+
fail-fast: false
10+
matrix:
11+
ruby: [2.4, 2.5, 2.6, 2.7, '3.0', 3.1, jruby]
12+
13+
env:
14+
JAVA_OPTS: '-Xmx1024m'
15+
RUBYOPT: '-w'
16+
JRUBY_OPTS: '--dev'
17+
18+
name: "Tests: Ruby ${{ matrix.ruby }}"
19+
steps:
20+
- name: Clone Repo
21+
uses: actions/checkout@v2
22+
- name: Setup Ruby ${{ matrix.ruby }}
23+
uses: ruby/setup-ruby@v1
24+
with:
25+
ruby-version: ${{ matrix.ruby }}
26+
bundler-cache: true
27+
- name: Run tests
28+
run: bundle exec rake ci

.github/workflows/experimental.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Experimental Rubies CI Run
2+
on:
3+
schedule:
4+
- cron: '0 0 * * *' # Runs every day at midnight
5+
workflow_dispatch:
6+
branches: [ master ]
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
continue-on-error: true
12+
13+
strategy:
14+
matrix:
15+
ruby: [head, jruby-head, truffleruby, truffleruby-head]
16+
17+
env:
18+
JAVA_OPTS: '-Xmx1024m'
19+
RUBYOPT: '-w'
20+
JRUBY_OPTS: '--dev'
21+
22+
name: "Tests: Experimental Ruby ${{ matrix.ruby }}"
23+
steps:
24+
- name: Clone Repo
25+
uses: actions/checkout@v2
26+
- name: Setup Ruby ${{ matrix.ruby }}
27+
uses: ruby/setup-ruby@v1
28+
with:
29+
ruby-version: ${{ matrix.ruby }}
30+
bundler-cache: true
31+
- name: Run tests
32+
run: bundle exec rake ci

.gitignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@
2828
/spec/examples.txt
2929

3030
# Compiled files
31-
/lib/concurrent/concurrent_ruby.jar
32-
/lib/concurrent/**/concurrent_ruby_ext.*
33-
/lib/concurrent/concurrent_ruby_ext.*
31+
/lib/concurrent-ruby/concurrent/concurrent_ruby.jar
32+
/lib/concurrent-ruby/concurrent/**/concurrent_ruby_ext.*
33+
/lib/concurrent-ruby/concurrent/concurrent_ruby_ext.*

.rspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
-I lib-edge
12
--require spec_helper
23
--color
34
--warnings

.travis.yml

Lines changed: 0 additions & 78 deletions
This file was deleted.

.yardopts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
--use-bundle-exec-rake-yard-instead
1+
--error:" use `bundle exec rake yard` instead"
22
--output-dir tmp
33
--
44
no-lib

BUILDING.md

Lines changed: 0 additions & 34 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,106 @@
11
## Current
22

3+
## Release v1.1.9 (5 Jun 2021)
4+
5+
concurrent-ruby:
6+
7+
* (#866) Child promise state not set to :pending immediately after #execute when parent has completed
8+
* (#905, #872) Fix RubyNonConcurrentPriorityQueue#delete method
9+
* (2df0337d) Make sure locks are not shared on shared when objects are dup/cloned
10+
* (#900, #906, #796, #847, #911) Fix Concurrent::Set tread-safety issues on CRuby
11+
* (#907) Add new ConcurrentMap backend for TruffleRuby
12+
13+
## Release v1.1.8 (20 January 2021)
14+
15+
concurrent-ruby:
16+
17+
* (#885) Fix race condition in TVar for stale reads
18+
* (#884) RubyThreadLocalVar: Do not iterate over hash which might conflict with new pair addition
19+
20+
## Release v1.1.7 (6 August 2020)
21+
22+
concurrent-ruby:
23+
24+
* (#879) Consider falsy value on `Concurrent::Map#compute_if_absent` for fast non-blocking path
25+
* (#876) Reset Async queue on forking, makes Async fork-safe
26+
* (#856) Avoid running problematic code in RubyThreadLocalVar on MRI that occasionally results in segfault
27+
* (#853) Introduce ThreadPoolExecutor without a Queue
28+
29+
## Release v1.1.6, edge v0.6.0 (10 Feb 2020)
30+
31+
concurrent-ruby:
32+
33+
* (#841) Concurrent.disable_at_exit_handlers! is no longer needed and was deprecated.
34+
* (#841) AbstractExecutorService#auto_terminate= was deprecated and has no effect.
35+
Set :auto_terminate option instead when executor is initialized.
36+
37+
## Release v1.1.6.pre1, edge v0.6.0.pre1 (26 Jan 2020)
38+
39+
concurrent-ruby:
40+
41+
* (#828) Allow to name executors, the name is also used to name their threads
42+
* (#838) Implement #dup and #clone for structs
43+
* (#821) Safer finalizers for thread local variables
44+
* Documentation fixes
45+
* (#814) Use Ruby's Etc.nprocessors if available
46+
* (#812) Fix directory structure not to mess with packaging tools
47+
* (#840) Fix termination of pools on JRuby
48+
49+
concurrent-ruby-edge:
50+
51+
* Add WrappingExecutor (#830)
52+
53+
## Release v1.1.5, edge v0.5.0 (10 Mar 2019)
54+
55+
concurrent-ruby:
56+
57+
* fix potential leak of context on JRuby and Java 7
58+
59+
concurrent-ruby-edge:
60+
61+
* Add finalized Concurrent::Cancellation
62+
* Add finalized Concurrent::Throttle
63+
* Add finalized Concurrent::Promises::Channel
64+
* Add new Concurrent::ErlangActor
65+
66+
## Release v1.1.4 (14 Dec 2018)
67+
68+
* (#780) Remove java_alias of 'submit' method of Runnable to let executor service work on java 11
69+
* (#776) Fix NameError on defining a struct with a name which is already taken in an ancestor
70+
71+
## Release v1.1.3 (7 Nov 2018)
72+
73+
* (#775) fix partial require of the gem (although not officially supported)
74+
75+
## Release v1.1.2 (6 Nov 2018)
76+
77+
* (#773) more defensive 1.9.3 support
78+
79+
## Release v1.1.1, edge v0.4.1 (1 Nov 2018)
80+
81+
* (#768) add support for 1.9.3 back
82+
83+
## Release v1.1.0, edge v0.4.0 (31 OCt 2018) (yanked)
84+
85+
* (#768) yanked because of issues with removed 1.9.3 support
86+
87+
## Release v1.1.0.pre2, edge v0.4.0.pre2 (18 Sep 2018)
88+
89+
concurrent-ruby:
90+
91+
* fixed documentation and README links
92+
* fix Set for TruffleRuby and Rubinius
93+
* use properly supported TruffleRuby APIs
94+
95+
concurrent-ruby-edge:
96+
97+
* add Promises.zip_futures_over_on
98+
399
## Release v1.1.0.pre1, edge v0.4.0.pre1 (15 Aug 2018)
4100

5101
concurrent-ruby:
6102

103+
* requires at least Ruby 2.0
7104
* [Promises](http://ruby-concurrency.github.io/concurrent-ruby/1.1.0/Concurrent/Promises.html)
8105
are moved from `concurrent-ruby-edge` to `concurrent-ruby`
9106
* Add support for TruffleRuby

Gemfile

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
source 'https://rubygems.org'
22

3-
require_relative 'lib/concurrent/version'
3+
require File.join(File.dirname(__FILE__), 'lib/concurrent-ruby/concurrent/version')
4+
require File.join(File.dirname(__FILE__ ), 'lib/concurrent-ruby-edge/concurrent/edge/version')
5+
require File.join(File.dirname(__FILE__ ), 'lib/concurrent-ruby/concurrent/utility/engine')
46

57
no_path = ENV['NO_PATH']
68
options = no_path ? {} : { path: '.' }
@@ -10,27 +12,28 @@ gem 'concurrent-ruby-edge', Concurrent::EDGE_VERSION, options
1012
gem 'concurrent-ruby-ext', Concurrent::VERSION, options.merge(platform: :mri)
1113

1214
group :development do
13-
gem 'rake', '~> 12.0'
14-
gem 'rake-compiler', '~> 1.0'
15-
gem 'rake-compiler-dock', '~> 0.6.0'
15+
gem 'rake', (Concurrent.ruby_version :<, 2, 2, 0) ? '~> 12.0' : '~> 13.0'
16+
gem 'rake-compiler', '~> 1.0', '>= 1.0.7'
17+
gem 'rake-compiler-dock', '~> 1.0'
1618
gem 'pry', '~> 0.11', platforms: :mri
1719
end
1820

1921
group :documentation, optional: true do
20-
gem 'yard', '~> 0.9.0', :require => false
22+
gem 'yard', '~> 0.9.0', require: false
2123
gem 'redcarpet', '~> 3.0', platforms: :mri # understands github markdown
22-
gem 'md-ruby-eval', '~> 0.2'
24+
gem 'md-ruby-eval', '~> 0.6'
2325
end
2426

2527
group :testing do
2628
gem 'rspec', '~> 3.7'
27-
gem 'timecop', '~> 0.7.4'
29+
gem 'timecop', '~> 0.9'
30+
gem 'sigdump', require: false
2831
end
2932

3033
# made opt-in since it will not install on jruby 1.7
3134
group :coverage, optional: !ENV['COVERAGE'] do
32-
gem 'simplecov', '~> 0.10.0', :require => false
33-
gem 'coveralls', '~> 0.8.2', :require => false
35+
gem 'simplecov', '~> 0.16.0', require: false
36+
gem 'coveralls', '~> 0.8.2', require: false
3437
end
3538

3639
group :benchmarks, optional: true do

LICENSE.md renamed to LICENSE.txt

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
1-
```
21
Copyright (c) Jerry D'Antonio -- released under the MIT license.
32

4-
http://www.opensource.org/licenses/mit-license.php
3+
http://www.opensource.org/licenses/mit-license.php
54

6-
Permission is hereby granted, free of charge, to any person obtaining a copy
7-
of this software and associated documentation files (the "Software"), to deal
8-
in the Software without restriction, including without limitation the rights
9-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10-
copies of the Software, and to permit persons to whom the Software is
11-
furnished to do so, subject to the following conditions:
12-
13-
The above copyright notice and this permission notice shall be included in
14-
all copies or substantial portions of the Software.
15-
16-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22-
THE SOFTWARE.
23-
```
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)