Skip to content

Commit 3bd2cf1

Browse files
committed
Merge branch 'synchronization' into actress
* synchronization: (279 commits) Edge - Future tweaks ...
2 parents db921a7 + 2be2f43 commit 3bd2cf1

File tree

247 files changed

+11849
-3832
lines changed

Some content is hidden

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

247 files changed

+11849
-3832
lines changed

.gitignore

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
Gemfile.lock
2+
.rspec-local
23
*.gem
34
lib/1.8
45
lib/1.9
@@ -7,8 +8,8 @@ lib/2.0
78
.ruby-version
89
.ruby-gemset
910
.bundle/*
10-
.yardoc/*
11-
yardoc/*
11+
.yardoc
12+
yardoc
1213
tmp/*
1314
man/*
1415
*.tmproj
@@ -27,11 +28,10 @@ tmtags
2728
*.sw?
2829
.idea
2930
.rbx/*
30-
lib/*.bundle
31-
lib/*.so
32-
lib/*.jar
33-
ext/*.bundle
34-
ext/*.so
35-
ext/*.jar
31+
lib/**/*.bundle
32+
lib/**/*.so
33+
lib/**/*.jar
34+
ext/**/*.bundle
35+
ext/**/*.so
36+
ext/**/*.jar
3637
pkg
37-
*.gem

.rspec

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
--require spec_helper
2+
--color
3+
--backtrace
4+
--format documentation

.travis.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
language: ruby
22

33
rvm:
4-
- 2.1.2
4+
- 2.2.0
5+
- 2.1.5
6+
- 2.1.4
57
- 2.0.0
68
- 1.9.3
79
- ruby-head
8-
- jruby-19mode
10+
- jruby-1.7.19
911
- jruby-head
1012
- rbx-2
1113

@@ -24,4 +26,4 @@ matrix:
2426
- rvm: jruby-head
2527
- rvm: 1.9.3
2628

27-
script: "bundle exec rake compile && bundle exec rspec --color --backtrace --tag ~unfinished --seed 1 --format documentation ./spec"
29+
script: bundle exec rake ci

CHANGELOG.md

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,74 @@
1-
### Next Release v0.7.2 (TBD)
1+
### Next Release v0.9.0 (Target Date: 5 April 2015)
2+
3+
* Pure Java implementations of
4+
- `AtomicBoolean`
5+
- `AtomicFixnum`
6+
- `Semaphore`
7+
* Fixed bug when pruning Ruby thread pools
8+
* Fixed bug in time calculations within `ScheduledTask`
9+
* Default `count` in `CountDownLatch` to 1
10+
* Use monotonic clock for all timers via `Concurrent.monotonic_time`
11+
- Use `Process.clock_gettime(Process::CLOCK_MONOTONIC)` when available
12+
- Fallback to `java.lang.System.nanoTime()` on unsupported JRuby versions
13+
- Pure Ruby implementation for everything else
14+
- Effects `Concurrent.timer`, `Concurrent.timeout`, `TimerSet`, `TimerTask`, and `ScheduledTask`
15+
* Deprecated all clock-time based timer scheduling
16+
- Only support scheduling by delay
17+
- Effects `Concurrent.timer`, `TimerSet`, and `ScheduledTask`
18+
* Added new `ReadWriteLock` class
19+
* Consistent `at_exit` behavior for Java and Ruby thread pools.
20+
* Added `at_exit` handler to Ruby thread pools (already in Java thread pools)
21+
- Ruby handler stores the object id and retrieves from `ObjectSpace`
22+
- JRuby disables `ObjectSpace` by default so that handler stores the object reference
23+
* Added a `:stop_on_exit` option to thread pools to enable/disable `at_exit` handler
24+
* Updated thread pool docs to better explain shutting down thread pools
25+
* Simpler `:executor` option syntax for all abstractions which support this option
26+
* Added `Executor#auto_terminate?` predicate method (for thread pools)
27+
* Added `at_exit` handler to `TimerSet`
28+
* Simplified auto-termination of the global executors
29+
- Can now disable auto-termination of global executors
30+
- Added shutdown/kill/wait_for_termination variants for global executors
31+
* Can now disable auto-termination for *all* executors (the nuclear option)
32+
* Simplified auto-termination of the global executors
33+
* Deprecated terms "task pool" and "operation pool"
34+
- New terms are "io executor" and "fast executor"
35+
- New functions added with new names
36+
- Deprecation warnings added to functions referencing old names
37+
* Moved all thread pool related functions from `Concurrent::Configuration` to `Concurrent`
38+
- Old functions still exist with deprecation warnings
39+
- New functions have updated names as appropriate
40+
* All high-level abstractions default to the "io executor"
41+
* Fixed bug in `Actor` causing it to prematurely warm global thread pools on gem load
42+
- This also fixed a `RejectedExecutionError` bug when running with minitest/autorun via JRuby
43+
* Moved global logger up to the `Concurrent` namespace and refactored the code
44+
* Optimized the performance of `Delay`
45+
- Fixed a bug in which no executor option on construction caused block execution on a global thread pool
46+
47+
## Current Release v0.8.0 (25 January 2015)
48+
49+
* C extension for MRI have been extracted into the `concurrent-ruby-ext` companion gem.
50+
Please see the README for more detail.
51+
* Better variable isolation in `Promise` and `Future` via an `:args` option
52+
* Continued to update intermittently failing tests
53+
54+
### Release v0.7.2 (24 January 2015)
255

356
* New `Semaphore` class based on [java.util.concurrent.Semaphore](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore.html)
457
* New `Promise.all?` and `Promise.any?` class methods
558
* Renamed `:overflow_policy` on thread pools to `:fallback_policy`
659
* Thread pools still accept the `:overflow_policy` option but display a warning
760
* Thread pools now implement `fallback_policy` behavior when not running (rather than universally rejecting tasks)
861
* Fixed minor `set_deref_options` constructor bug in `Promise` class
62+
* Fixed minor `require` bug in `ThreadLocalVar` class
63+
* Fixed race condition bug in `TimerSet` class
64+
* Fixed race condition bug in `TimerSet` class
65+
* Fixed signal bug in `TimerSet#post` method
966
* Numerous non-functional updates to clear warning when running in debug mode
1067
* Fixed more intermittently failing tests
1168
* Tests now run on new Travis build environment
69+
* Multiple documentation updates
1270

13-
## Current Release v0.7.1 (4 December 2014)
71+
### Release v0.7.1 (4 December 2014)
1472

1573
Please see the [roadmap](https://github.com/ruby-concurrency/concurrent-ruby/issues/142) for more information on the next planned release.
1674

Gemfile

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
source 'https://rubygems.org'
22

3-
gemspec
3+
gemspec name: 'concurrent-ruby'
4+
gemspec name: 'concurrent-ruby-edge'
45

56
group :development do
6-
gem 'rake', '~> 10.3.2'
7-
gem 'rake-compiler', '~> 0.9.2'
8-
end
7+
gem 'rake', '~> 10.4.2'
8+
gem 'rake-compiler', '~> 0.9.5'
9+
gem 'gem-compiler', '~> 0.3.0'
10+
gem 'benchmark-ips', '~> 2.2.0'
911

10-
group :testing do
11-
gem 'rspec', '~> 3.0.0'
12-
gem 'simplecov', '~> 0.8.2', :require => false
13-
gem 'coveralls', '~> 0.7.0', :require => false
14-
gem 'timecop', '~> 0.7.1'
12+
# documentation
13+
gem 'countloc', '~> 0.4.0', :platforms => :mri, :require => false
14+
gem 'yard', '~> 0.8.7.6', :require => false
15+
gem 'inch', '~> 0.6.2', :platforms => :mri, :require => false
16+
gem 'redcarpet', '~> 3.2.3', platforms: :mri # understands github markdown
1517
end
1618

17-
group :documentation do
18-
gem 'countloc', '~> 0.4.0', :platforms => :mri, :require => false
19-
gem 'rubycritic', '~> 1.0.2', :platforms => :mri, require: false
20-
gem 'yard', '~> 0.8.7.4', :require => false
21-
gem 'inch', '~> 0.4.6', :platforms => :mri, :require => false
22-
gem 'redcarpet', '~> 3.1.2', platforms: :mri # understands github markdown
19+
group :testing do
20+
gem 'rspec', '~> 3.2.0'
21+
gem 'simplecov', '~> 0.10.0', :require => false
22+
gem 'coveralls', '~> 0.8.1', :require => false
23+
gem 'timecop', '~> 0.7.3'
2324
end

0 commit comments

Comments
 (0)