Releases: ruby-concurrency/concurrent-ruby
Releases · ruby-concurrency/concurrent-ruby
v1.0.1
Patch release containing bug fixes and documentation improvements.
- Fix "uninitialized constant Concurrent::ReentrantReadWriteLock" error.
- Better handling of
autoload
vs.require
. - Improved API for Edge
Future
zipping. - Fix reference leak in Edge
Future
constructor . - Fix bug which prevented thread pools from surviving a
fork
. - Fix bug in which
TimerTask
did not correctly specify all its dependencies. - Improved support for JRuby+Truffle
- Improved error messages.
- Improved documentation.
- Updated README and CONTRIBUTING.
v1.0.0
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
Actor
logging. - Fixed
ThreadPoolExecutor
task count methods. - Improved
Async
performance for both short and long-lived objects. - Fixed bug in
LockFreeLinkedSet
. - Fixed bug in which
Agent#await
triggered a validation failure. - Further
Channel
updates.
0.9.2
1.0.0.pre4
- Adopted a project Code of Conduct
- Cleared interpreter warnings
- Fixed bug in
ThreadPoolExecutor
task count methods - Fixed bug in 'LockFreeLinkedSet'
- Improved Java extension loading
- Handle Exception children in Edge::Future
- Continued improvements to channel
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
Channel
implementation in Edge gem.
v1.0.0.pre2
- Simplification of
RubySingleThreadExecutor
Async
improvements- Each object uses its own
SingleThreadExecutor
instead of the global thread pool. - No longers supports executor injection
- Much better documentation
- Each object uses its own
Atom
updates- No longer
Dereferenceable
- Now
Observable
- Added a
#reset
method
- No longer
- Brand new
Agent
API and implementation. Now functionally equivalent to Clojure. - Continued improvements to the synchronization layer
v1.0.0.pre1
- Merged in the
thread_safe
gemConcurrent::Array
Concurrent::Hash
Concurrent::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
v0.9.1
- Fixed a Rubiniux bug in synchronization object
- Fixed all interpreter warnings (except circular references)
- Fixed require statements when requiring
Atom
alone - Significantly improved
ThreadLocalVar
on non-JRuby platforms - Fixed error handling in Edge
Concurrent.zip
AtomicFixnum
methods#increment
and#decrement
now support optional delta- New
AtomicFixnum#update
method - Minor optimizations in
ReadWriteLock
- New
ReentrantReadWriteLock
class ThreadLocalVar#bind
method is now public- Refactored many tests
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