Recent Releases of https://github.com/ruby-concurrency/concurrent-ruby
https://github.com/ruby-concurrency/concurrent-ruby - v1.3.6
What's Changed
- Run tests without the C extension in CI by @eregon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1081
- Fix typo in Promise docs by @danieldiekmeier in https://github.com/ruby-concurrency/concurrent-ruby/pull/1083
- Correct word in readme by @wwahammy in https://github.com/ruby-concurrency/concurrent-ruby/pull/1084
- Fix mistakes in MVar documentation by @trinistr in https://github.com/ruby-concurrency/concurrent-ruby/pull/1087
- Fix multi require concurrent/executor/cached_thread_pool by @OuYangJinTing in https://github.com/ruby-concurrency/concurrent-ruby/pull/1085
- Use typed data APIs by @nobu in https://github.com/ruby-concurrency/concurrent-ruby/pull/1096
- Add Joshua Young to the list of maintainers by @eregon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1097
- Asynchronous pruning for RubyThreadPoolExecutor by @joshuay03 in https://github.com/ruby-concurrency/concurrent-ruby/pull/1082
- Mark RubySingleThreadExecutor as a SerialExecutorService by @meineerde in https://github.com/ruby-concurrency/concurrent-ruby/pull/1070
- Allow TimerTask to be safely restarted after shutdown and avoid duplicate tasks by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1001
- Flaky test fix: allow ThreadPool to shutdown before asserting completed_task_count by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1098
ThreadPoolExecutor#killwillwait_for_terminationin JRuby; ensureTimerSettimer thread shuts down cleanly by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1044
New Contributors
- @danieldiekmeier made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1083
- @wwahammy made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1084
- @trinistr made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1087
- @OuYangJinTing made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1085
- @nobu made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1096
- @joshuay03 made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1082
Full Changelog: https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.5...v1.3.6
- Ruby
Published by eregon 3 months ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.3.5
What's Changed
- Remove dependency on logger by @eregon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1062
- Avoid error when member is present on ancestor class by @francesmcmullin in https://github.com/ruby-concurrency/concurrent-ruby/pull/1068
- Set rake-compiler source and target to Java 8 by @headius in https://github.com/ruby-concurrency/concurrent-ruby/pull/1071
- chore: fix typos by @chenrui333 in https://github.com/ruby-concurrency/concurrent-ruby/pull/1076
New Contributors
- @francesmcmullin made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1068
- @chenrui333 made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1076
Full Changelog: https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.4...v1.3.5
- Ruby
Published by eregon about 1 year ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.3.4
What's Changed
- Update comment for JRuby variant of processor_count to reality by @meineerde in https://github.com/ruby-concurrency/concurrent-ruby/pull/1054
- Add
Concurrent.cpu_requeststhat is cgroups aware. by @heka1024 in https://github.com/ruby-concurrency/concurrent-ruby/pull/1058 - Fix the doc of
Concurrent.available_processor_countby @y-yagi in https://github.com/ruby-concurrency/concurrent-ruby/pull/1059 - Fix the return value of
Concurrent.available_processor_countwhencpu.cfs_quota_usis -1 by @y-yagi in https://github.com/ruby-concurrency/concurrent-ruby/pull/1060
New Contributors
- @heka1024 made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1058
- @y-yagi made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1059
Full Changelog: https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.3...v1.3.4
- Ruby
Published by eregon over 1 year ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.3.3
What's Changed
- Improve speed for windows
Get-CimInstanceby @Earlopain in https://github.com/ruby-concurrency/concurrent-ruby/pull/1053
Full Changelog: https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.2...v1.3.3
- Ruby
Published by eregon over 1 year ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.3.2
What's Changed
- Fix method name in CHANGELOG.md by @nertzy in https://github.com/ruby-concurrency/concurrent-ruby/pull/1049
- Remove dependency on
win32oleby @Earlopain in https://github.com/ruby-concurrency/concurrent-ruby/pull/1051
New Contributors
- @nertzy made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1049
- @Earlopain made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1051
Full Changelog: https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.1...v1.3.2
- Ruby
Published by eregon over 1 year ago
https://github.com/ruby-concurrency/concurrent-ruby - Edge 0.7.1
- (#1052) Fix dependency on
concurrent-rubyto allow the latest release.
- Ruby
Published by eregon over 1 year ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.3.1
This release is essentially v1.3.0, but with a properly packaged gem. There was an issue publishing v1.3.0 and that gem needed to be yanked to avoid breaking downstream projects. The v1.3.0 changelog is reproduced below.
What's Changed
- Add Concurrent.usable_processor_count that is cgroups aware by @casperisfine in https://github.com/ruby-concurrency/concurrent-ruby/pull/1038
- Align Java Executor Service behavior for
shuttingdown?,shutdown?by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1042
New Contributors
- @dependabot made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1028
- @kkohrt made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1037
Full Changelog: https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.2.3...v1.3.1
- Ruby
Published by nirvdrum almost 2 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.3.0
There was a packaging issue that resulted in a broken v1.3.0 gem having been pushed to RubyGems. The code corresponding to this tag is fine to use, but there is no corresponding v1.3.0 gem as we had to yank it. Please use v1.3.1 instead, which is nothing more than v1.3.0 packaged correctly.
What's Changed
- Add Concurrent.usable_processor_count that is cgroups aware by @casperisfine in https://github.com/ruby-concurrency/concurrent-ruby/pull/1038
- Align Java Executor Service behavior for
shuttingdown?,shutdown?by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1042
New Contributors
- @dependabot made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1028
- @kkohrt made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1037
Full Changelog: https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.2.3...v1.3.0
- Ruby
Published by nirvdrum almost 2 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.2.3
What's Changed
- Fix TimerTask
:execution_intervaldocs by @freemanoid in https://github.com/ruby-concurrency/concurrent-ruby/pull/994 - Fix TimerTask docs to not refer to
#executeas "blocking" by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/996 - Fix TimerTask example output by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1003
- Fix broken CI due to rake-compiler error on Ruby < 2.6 by @mattbrictson in https://github.com/ruby-concurrency/concurrent-ruby/pull/1007
- Fix doc typo: yeild → yield by @mattbrictson in https://github.com/ruby-concurrency/concurrent-ruby/pull/1006
- Fix DaemonThreadFactory - reuse single Java thread factory by @obulkin in https://github.com/ruby-concurrency/concurrent-ruby/pull/1009
- Fix sporadic failures testing with JRuby by @headius in https://github.com/ruby-concurrency/concurrent-ruby/pull/1012
- Allow TimerSet to safely handle an executor raising
RejectedExecutionErrorby @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/999 - Use executor from arg in then_on/rescue_on/chain_on for Promises by @tgwizard in https://github.com/ruby-concurrency/concurrent-ruby/pull/1005
- Allow TimerTask to be initialized with a specified Executor by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1000
- Create method ThreadPoolExecutor#active_count to expose the number of threads that are actively executing tasks by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1002
- Drop dependency on
mutex_mby @casperisfine in https://github.com/ruby-concurrency/concurrent-ruby/pull/1013 - Fix compile error on FreeBSD 14 by @janbiedermann in https://github.com/ruby-concurrency/concurrent-ruby/pull/1014
- Fix spurious return in Promises#wait_until_resolved by @eregon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1016
- Remove AtomicReferenceMapBackend and CheapLockable by @eregon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1018
- Add Ruby 3.3 in CI by @eregon in https://github.com/ruby-concurrency/concurrent-ruby/pull/1021
- docs: fix typo in throttle docs by @G-Rath in https://github.com/ruby-concurrency/concurrent-ruby/pull/1024
- docs: update promises grammar by @G-Rath in https://github.com/ruby-concurrency/concurrent-ruby/pull/1026
- Add
TimerTask#interval_typeoption to configure interval calculation by @bensheldon in https://github.com/ruby-concurrency/concurrent-ruby/pull/997
New Contributors
- @freemanoid made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/994
- @bensheldon made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/996
- @mattbrictson made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1007
- @obulkin made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1009
- @headius made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1012
- @tgwizard made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1005
- @janbiedermann made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1014
- @G-Rath made their first contribution in https://github.com/ruby-concurrency/concurrent-ruby/pull/1024
Full Changelog: https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.2.2...v1.2.3
- Ruby
Published by eregon about 2 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.2.2
concurrent-ruby 1.2.2:
- (#993) Fix arguments passed to
Concurrent::Map'sdefault_proc.
- Ruby
Published by eregon about 3 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.2.1
concurrent-ruby 1.2.1:
- (#990) Add missing
require 'fiber'forFiberLocalVar. - (#989) Optimize
Concurrent::Map#[]on CRuby by letting the backing Hash handle thedefault_proc.
- Ruby
Published by eregon about 3 years ago
https://github.com/ruby-concurrency/concurrent-ruby -
concurrent-ruby 1.2.0:
- (#975) Set the Ruby compatibility version at 2.3
- (#962) Fix ReentrantReadWriteLock to use the same granularity for locals as for Mutex it uses.
- (#983) Add FiberLocalVar
- (#934) concurrent-ruby now supports requiring individual classes (public classes listed in the docs), e.g.,
require 'concurrent/map' - (#976) Let
Promises.any_fulfilled_futuretake anEvent - Improve documentation of various classes
- (#972) Remove Rubinius-related code
concurrent-ruby-edge 0.7.0:
- (#975) Set the Ruby compatibility version at 2.3
- (#934) concurrent-ruby now supports requiring individual classes (public classes listed in the docs), e.g.,
require 'concurrent/map' - (#972) Remove Rubinius-related code
- Ruby
Published by eregon about 3 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.10
concurrent-ruby:
- (#951) Set the Ruby compatibility version at 2.2
- (#939, #933) The
caller_runsfallback policy no longer blocks reads from the job queue by worker threads - (#938, #761, #652) You can now explicitly
prune_poola thread pool (Sylvain Joyeux) - (#937, #757, #670) We switched the Yahoo stock API for demos to Alpha Vantage (Gustavo Caso)
- (#932, #931) We changed how
SafeTaskExecutorhandles local jump errors (Aaron Jensen) - (#927) You can use keyword arguments in your initialize when using
Async(Matt Larraz) - (#926, #639) We removed timeout from
TimerTaskbecause it wasn't sound, and now it's a no-op with a warning (Jacob Atzen) - (#919) If you double-lock a re-entrant read-write lock, we promote to locked for writing (zp yuan)
- (#915)
monotonic_timenow accepts an optional unit parameter, as Ruby'sclock_gettime(Jean Boussier)
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.1
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.2
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.3
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.4
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.5
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.6
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.7
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.8
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.9
- Ruby
Published by chrisseaton almost 4 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.0
concurrent-ruby:
- requires at least Ruby 2.0
- Promises
are moved fromconcurrent-ruby-edgetoconcurrent-ruby - Add support for TruffleRuby
- (#734) Fix Array/Hash/Set construction broken on TruffleRuby
- AtomicReference fixed
- fixed documentation and README links
- fix Set for TruffleRuby and Rubinius
- CI stabilization
- remove sharp dependency edge -> core
- remove warnings
- documentation updates
- Exchanger is no longer documented as edge since it was already available in
concurrent-ruby - (#644) Fix Map#each and #each_pair not returning enumerator outside of MRI
- (#659) Edge promises fail during error handling
- (#741) Raise on recursive Delay#value call
- (#727) #717 fix global IO executor on JRuby
- (#740) Drop support for CRuby 1.9, JRuby 1.7, Rubinius.
- (#737) Move AtomicMarkableReference out of Edge
- (#708) Prefer platform specific memory barriers
- (#735) Fix wrong expected exception in channel spec assertion
- (#729) Allow executor option in
Promise#then - (#725) fix timeout check to use timeout_interval
- (#719) update engine detection
- (#660) Add specs for Promise#zip/Promise.zip ordering
- (#654) Promise.zip execution changes
- (#666) Add thread safe set implementation
- (#651) #699 #to_s, #inspect should not output negative object IDs.
- (#685) Avoid RSpec warnings about raise_error
- (#680) Avoid RSpec monkey patching, persist spec results locally, use RSpec
v3.7.0 - (#665) Initialize the monitor for new subarrays on Rubinius
- (#661) Fix error handling in edge promises
concurrent-ruby-edge:
- (#659) Edge promises fail during error handling
- Edge files clearly separated in
lib-edge - added ReInclude
- add Promises.zip_futures_over_on
- Ruby
Published by pitr-ch over 7 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.0.pre2
concurrent-ruby:
- fixed documentation and README links
- fix Set for TruffleRuby and Rubinius
concurrent-ruby-edge:
- add Promises.zip_futures_over_on
- Ruby
Published by pitr-ch over 7 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.1.0.pre1
concurrent-ruby:
- Promises
are moved fromconcurrent-ruby-edgetoconcurrent-ruby - Add support for TruffleRuby
- (#734) Fix Array/Hash/Set construction broken on TruffleRuby
- AtomicReference fixed
- CI stabilization
- remove sharp dependency edge -> core
- remove warnings
- documentation updates
- Exchanger is no longer documented as edge since it was already available in
concurrent-ruby - (#644) Fix Map#each and #each_pair not returning enumerator outside of MRI
- (#659) Edge promises fail during error handling
- (#741) Raise on recursive Delay#value call
- (#727) #717 fix global IO executor on JRuby
- (#740) Drop support for CRuby 1.9, JRuby 1.7, Rubinius.
- (#737) Move AtomicMarkableReference out of Edge
- (#708) Prefer platform specific memory barriers
- (#735) Fix wrong expected exception in channel spec assertion
- (#729) Allow executor option in
Promise#then - (#725) fix timeout check to use timeout_interval
- (#719) update engine detection
- (#660) Add specs for Promise#zip/Promise.zip ordering
- (#654) Promise.zip execution changes
- (#666) Add thread safe set implementation
- (#651) #699 #to_s, #inspect should not output negative object IDs.
- (#685) Avoid RSpec warnings about raise_error
- (#680) Avoid RSpec monkey patching, persist spec results locally, use RSpec
v3.7.0 - (#665) Initialize the monitor for new subarrays on Rubinius
- (#661) Fix error handling in edge promises
concurrent-ruby-edge:
- (#659) Edge promises fail during error handling
- Edge files clearly separated in
lib-edge - added ReInclude
- Ruby
Published by pitr-ch over 7 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.5
concurrent-ruby:
- Documentation for Event and Semaphore
- Use Unsafe#fullFence and #loadFence directly since the shortcuts were removed in JRuby
- Do not depend on org.jruby.util.unsafe.UnsafeHolder
concurrent-ruby-edge:
- (#620) Actors on Pool raise an error
- (#624) Delayed promises did not interact correctly with flatting
- Fix arguments yielded by callback methods
- Overridable default executor in promises factory methods
- Asking actor to terminate will always resolve to
true
- Ruby
Published by pitr-ch about 9 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.4
Patch release.
concurrent-ruby:
- Nothing
concurrent-ruby-edge:
- New promises' API renamed, lots of improvements, edge bumped to 0.3.0
- Incompatible with previous 0.2.3 version
- see https://github.com/ruby-concurrency/concurrent-ruby/pull/522
- Ruby
Published by pitr-ch about 9 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.3
Patch release
- Trigger execution of flattened delayed futures
- Avoid forking for processor_count if possible
- Semaphore Mutex and JRuby parity
- Adds Map#each as alias to Map#each_pair
- Fix uninitialized instance variables
- Make Fixnum, Bignum merger ready
- Allows Promise#then to receive an executor
- TimerSet now survives a fork
- Reject promise on any exception
- Allow ThreadLocalVar to be initialized with a block
- Support Alpha with
Concurrent::processor_count - Fixes format-security error when compiling ruby_193_compatible.h
- Concurrent::Atom#swap fixed: reraise the exceptions from block
- Ruby
Published by pitr-ch about 9 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.3.pre3
Publishing to rubygems.org so that we can test compilation and bug fixes.
- Ruby
Published by jdantonio over 9 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.3.pre2
For issue testing #539
- Ruby
Published by pitr-ch over 9 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.3.pre1
Pre-release to test the C fixes from PR #536.
- Ruby
Published by jdantonio over 9 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.2
Patch release containing bug fixes and documentation improvements.
- Fix bug with
Concurrent::MapMRI backend#inspectmethod - Fix bug with
Concurrent::MapMRI backend usingHash#value? - Improved documentation and examples
- Minor updates to Edge
- Ruby
Published by jdantonio almost 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.1
Patch release containing bug fixes and documentation improvements.
- Fix "uninitialized constant Concurrent::ReentrantReadWriteLock" error.
- Better handling of
autoloadvs.require. - Improved API for Edge
Futurezipping. - Fix reference leak in Edge
Futureconstructor . - Fix bug which prevented thread pools from surviving a
fork. - Fix bug in which
TimerTaskdid not correctly specify all its dependencies. - Improved support for JRuby+Truffle
- Improved error messages.
- Improved documentation.
- Updated README and CONTRIBUTING.
- Ruby
Published by jdantonio about 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.0
🎉
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 1.0.0.pre5
This is the last planned pre-release.
- Further updates and improvements to the synchronization layer.
- Performance and memory usage performance with
Actorlogging. - Fixed
ThreadPoolExecutortask count methods. - Improved
Asyncperformance for both short and long-lived objects. - Fixed bug in
LockFreeLinkedSet. - Fixed bug in which
Agent#awaittriggered a validation failure. - Further
Channelupdates.
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.9.2
Final release of 0.9.x before the upcoming 1.0.0 release.
- Removed Java 7 deprecation warning.
- Put debug log statement inside block for improved performance and memory utilization.
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 1.0.0.pre4
- Adopted a project Code of Conduct
- Cleared interpreter warnings
- Fixed bug in
ThreadPoolExecutortask count methods - Fixed bug in 'LockFreeLinkedSet'
- Improved Java extension loading
- Handle Exception children in Edge::Future
- Continued improvements to channel
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 1.0.0.pre3
- Removed interpreter warnings.
- Shared constants now in
lib/concurrent/constants.rb - Refactored many tests.
- Improved synchronization layer/memory model documentation.
- Bug fix in Edge
Future#flat - Brand new
Channelimplementation in Edge gem.
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.0.pre2
- Simplification of
RubySingleThreadExecutor Asyncimprovements- Each object uses its own
SingleThreadExecutorinstead of the global thread pool. - No longers supports executor injection
- Much better documentation
- Each object uses its own
Atomupdates- No longer
Dereferenceable - Now
Observable - Added a
#resetmethod
- No longer
- Brand new
AgentAPI and implementation. Now functionally equivalent to Clojure. - Continued improvements to the synchronization layer
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v1.0.0.pre1
- Merged in the
thread_safegemConcurrent::ArrayConcurrent::HashConcurrent::Map(formerly ThreadSafe::Cache)Concurrent::Tuple
- Minor improvements to Concurrent::Map
- Complete rewrite of
Exchanger - Removed all deprecated code (classes, methods, constants, etc.)
- Updated Agent, MutexAtomic, and BufferedChannel to inherit from Synchronization::Object.
- Many improved tests
- Some internal reorganization
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v0.9.1
- Fixed a Rubiniux bug in synchronization object
- Fixed all interpreter warnings (except circular references)
- Fixed require statements when requiring
Atomalone - Significantly improved
ThreadLocalVaron non-JRuby platforms - Fixed error handling in Edge
Concurrent.zip AtomicFixnummethods#incrementand#decrementnow support optional delta- New
AtomicFixnum#updatemethod - Minor optimizations in
ReadWriteLock - New
ReentrantReadWriteLockclass ThreadLocalVar#bindmethod is now public- Refactored many tests
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v0.9.0
Our biggest release to date. Too many changes to list here. Please see the CHANGELOG for more details. The most important changes are:
- Deprecation of many APIs that will not be in the 1.0 release
- Creation of an Edge gem where all new and potentially unstable abstractions can be initially released
- Moving of several abstractions/classes into Edge
- Creation of many new abstractions/classes
- Many, many bug fixes and performance optimizations
- Improved tests
- Improved build process
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v0.9.0.pre3
Finalizing API and Yardoc. We plan mostly bug/test fixes between now and the full release of 0.9.0.
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v0.9.0.pre2
Finalizing API and Yardoc. We plan mostly bug/test fixes between now and the full release of 0.9.0.
- Ruby
Published by jdantonio over 10 years ago
https://github.com/ruby-concurrency/concurrent-ruby - v0.9.0.pre1
Nearing finalization of the API. Some internal restructuring is still necessary. The changelog and readme are out of date and do not accurately reflect all the changes since the last release.
- Ruby
Published by jdantonio almost 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.8.0
This is the first release to use the new model for C and Java native extensions. Java native extensions are built into the core gem and published as a pre-compiled Java build (in addition to the pure-Ruby core gem). C native extensions for MRI are published as a separate extension gem. The main extension gem must be compiled on installation, but pre-compiled Windows binaries (x32 and x64) are published as well. Specific features in this build include:
- C extension for MRI have been extracted into the
concurrent-ruby-extcompanion gem.
Please see the README for more detail. - Better variable isolation in
PromiseandFuturevia an:argsoption - Continued to update intermittently failing tests
- Ruby
Published by jdantonio about 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - Extension Gem Pre-release 3
A private release used to fix and test pre-compiled extensions for Windows. It was never pushed to Rubygems.
- Ruby
Published by jdantonio about 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.7.2
- New
Semaphoreclass based on java.util.concurrent.Semaphore - New
Promise.all?andPromise.any?class methods - Renamed
:overflow_policyon thread pools to:fallback_policy - Thread pools still accept the
:overflow_policyoption but display a warning - Thread pools now implement
fallback_policybehavior when not running (rather than universally rejecting tasks) - Fixed minor
set_deref_optionsconstructor bug inPromiseclass - Fixed minor
requirebug inThreadLocalVarclass - Fixed race condition bug in
TimerSetclass - Fixed race condition bug in
TimerSetclass - Fixed signal bug in
TimerSet#postmethod - Numerous non-functional updates to clear warning when running in debug mode
- Fixed more intermittently failing tests
- Tests now run on new Travis build environment
- Multiple documentation updates
- Ruby
Published by jdantonio about 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - Extension Gem Pre-release 2
This release builds two gems from this repo: concurrent-ruby and concurrent-ruby-ext, the latter of which contains the C-native extensions that were added to the core gem in the 0.7 release.
- Background describing why we're making this change: New Approach to C/Java Native Extensions #186
- The PR from which this pre-release was created: Builds two gems from one repo. #205
- A prior attempt to to create two gems from two separate repos (rejected): Moved C extensions into a companion gem. #197
- Ruby
Published by jdantonio about 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - Extension Gem Pre-release 1
This release builds two gems from this repo: concurrent-ruby and concurrent-ruby-ext, the latter of which contains the C-native extensions that were added to the core gem in the 0.7 release.
- Background describing why we're making this change: New Approach to C/Java Native Extensions #186
- The PR from which this pre-release was created: Builds two gems from one repo. #205
- A prior attempt to to create two gems from two separate repos (rejected): Moved C extensions into a companion gem. #197
- Ruby
Published by jdantonio about 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.7.1
- Added
flat_mapmethod toPromise - Added
zipmethod toPromise - Fixed bug with logging in
Actor - Improvements to
Promisetests - Removed actor-experimental warning
- Added an
IndirectImmediateExecutorclass - Allow disabling auto termination of global executors
- Fix thread leaking in
ThreadLocalVar(usesRefgem on non-JRuby systems) - Fix thread leaking when pruning pure-Ruby thread pools
- Prevent
Actorfrom using anImmediateExecutor(causes deadlock) - Added missing synchronizations to
TimerSet - Fixed bug with return value of
Concurrent::Actor::Utils::Pool#ask - Fixed timing bug in
TimerTask - Fixed bug when creating a
JavaThreadPoolExecutorwith minimum pool size of zero - Removed confusing warning when not using native extenstions
- Improved documentation
- Ruby
Published by jdantonio about 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.7.0
- Merge the atomic gem
- Pure Ruby
MutexAtomicatomic reference class - Platform native atomic reference classes
CAtomic,JavaAtomic, andRbxAtomic - Automated build process
- Fat binary releases for multiple platforms including Windows (32/64), Linux (32/64), OS X (64-bit), Solaris (64-bit), and JRuby
- Pure Ruby
- C native
CAtomicBoolean - C native
CAtomicFixnum - Refactored intermittently failing tests
- Added
dataflow!anddataflow_with!methods to matchFuture#value!method - Better handling of timeout in
Agent - Actor Improvements
- Fine-grained implementation using chain of behaviors. Each behavior is responsible for single aspect like:
Termination,Pausing,Linking,Supervising, etc. Users can create custom Actors easily based on their needs. - Supervision was added.
RestartingContextwill pause on error waiting on its supervisor to decide what to do next ( options are:terminate!,:resume!,:reset!,:restart!). Supervising behavior also supports strategies:one_for_oneand:one_for_all. - Linking was added to be able to monitor actor's events like:
:terminated,:paused,:restarted, etc. - Dead letter routing added. Rejected envelopes are collected in a configurable actor (default:
Concurrent::Actor.root.ask!(:dead_letter_routing)) - Old
Actorclass removed and replaced by new implementation previously calledActress.Actresswas kept as an alias forActorto keep compatibility. Utils::Broadcastactor which allows Publish–subscribe pattern.
- Fine-grained implementation using chain of behaviors. Each behavior is responsible for single aspect like:
- More executors for managing serialized operations
SerializedExecutionmixin moduleSerializedExecutionDelegatorfor serializing any executor
- Updated
Asyncwith serialized execution - Updated
ImmediateExecutorandPerThreadExecutorwith full executor service lifecycle - Added a
Delayto rootActressinitialization - Minor bug fixes to thread pools
- Refactored many intermittently failing specs
- Removed Java interop warning
executor.rb:148 warning: ambiguous Java methods found, using submit(java.lang.Runnable) - Fixed minor bug in
RubyCachedThreadPooloverflow policy - Updated tests to use RSpec 3.0
- Removed deprecated
Actorclass - Better support for Rubinius
- Ruby
Published by jdantonio over 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.7.0 Release Candidate 3
Fix bug #150
We recently discovered that Rubinius installs the gem version with pre-compiled extensions. The internal guard logic assumed that the C-native build would only be installed under MRI. As a result we were experiencing unintended behavior on Rubinius. This PR addresses this issue by adding more robust guard clauses, attempting to ensure that C extensions are only loaded on MRI, regardless of what platform a particular interpreter reports.
Because the release of 0.7.0 was put on hold, the guard clauses are very brute-force. They can probably be cleaned up in a later release.
NOTE: It has been suggested that we consider using a gem called Redcarpet for the guard functionality. This gem was unknown to us until yesterday. At this time we have explicitly decided to not include an external gem dependencies. We will consider using Redcarpet in a future release.
- Ruby
Published by jdantonio over 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.7.0 Release Candidate 2
Major actor updates plus several bug fixes and minor refactoring. Please see the changelog for details.
- C native
CAtomicBoolean - C native
CAtomicFixnum - Refactored intermittently failing tests
- Added
dataflow!anddataflow_with!methods to matchFuture#value!method - Better handling of timeout in
Agent - Actor Improvements
- Fine-grained implementation using chain of behaviors. Each behavior is responsible for single aspect like:
Termination,Pausing,Linking,Supervising, etc. Users can create custom Actors easily based on their needs. - Supervision was added.
RestartingContextwill pause on error waiting on its supervisor to decide what to do next ( options are:terminate!,:resume!,:reset!,:restart!). Supervising behavior also supports strategies:one_for_oneand:one_for_all. - Linking was added to be able to monitor actor's events like:
:terminated,:paused,:restarted, etc. - Dead letter routing added. Rejected envelopes are collected in a configurable actor (default:
Concurrent::Actor.root.ask!(:dead_letter_routing)) - Old
Actorclass removed and replaced by new implementation previously calledActress.Actresswas kept as an alias forActorto keep compatibility. Utils::Broadcastactor which allows Publish–subscribe pattern.
- Fine-grained implementation using chain of behaviors. Each behavior is responsible for single aspect like:
- Ruby
Published by jdantonio over 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.7.0 Release Candidate 1
Bug fixes and minor refactoring. Please see the changelog for details.
- Ruby
Published by jdantonio over 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.7.0 Release Candidate 0 (Experimental)
This is an experimental release of C and Java native extensions. It merges the ruby-atomic gem into the 0.6.1. It was built using an automated build process that creates pre-compiled binary releases for most major operating systems. We believe this release to be highly stable and highly portable. The C/Java native code we imported was highly battle-tested. Since this is our first release with native extensions we urge cautious experimentation.
- Ruby
Published by jdantonio over 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.6.1
- Many improvements to
Concurrent::Actress - Bug fixes to
Concurrent::RubyThreadPoolExecutor - Fixed several brittle tests
- Moved documentation to http://ruby-concurrency.github.io/concurrent-ruby/frames.html
- Ruby
Published by jdantonio over 11 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.6.0
This release includes several major optimizations and refactorings, a few new classes, vastly improved tests. Some highlights:
- Gem configuration is now handled through a common configuration class rather than the old global variables.
- Several classes, including
Agent,TimerTask,ScheduledTask, andEventhave significantly improved performance and stability. - The old thread pools have been completely rewritten, based heavily on Java's executors. Several new executors have been added, and many executors include JRuby optimizations.
- Several new abstractions have been added, including a high-performance
Channelsystem, new atomic classes,TimerSet, and theAsyncmixin module. - Many internal stability, thread-safety, and performance improvements.
- Many improvements to the test suite to remove fragile tests.
- The old
Actorclass has been deprecated in lieu of the vastly more robust (but still experimental)Actressmodule (Actresswill be renamedActorin the 0.7.0 release)
Please see the changelog for more information.
- Ruby
Published by jdantonio almost 12 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.6.0 Pre-release 2
This release includes several major optimizations and refactorings, a few new classes, vastly improved tests, and continued evolution of the new Channel and ActorContext classes.
Please see the changelog for more information.
- Ruby
Published by jdantonio almost 12 years ago
https://github.com/ruby-concurrency/concurrent-ruby - 0.6.0 Pre-release 1
This pre-release includes several deprecations, new features, and JRuby optimizations. The most important changes are to thread pools. Thread pools have been completely rewritten. The behavior of FixedThreadPool and CachedThreadPool have not changed, but they now both extend a common base class called ThreadPoolExecutor. On JRuby this base class is a thin wrapper around java.util.concurrent.ThreadPoolExecutor. Subsequently the global thread pool has been updated from an instance of PerThreadExecutor (formerly NullThreadPool) to an instance of CachedThreadPool. This should increase the performance of all tasks using the global thread pool (such as Future, Agent, Promise, and others), especially on JRuby.
Please see the release notes for more information.
- Ruby
Published by jdantonio almost 12 years ago