Concurrent Ruby v0.5.0 Release Notes
Release Date: 2019-03-11 // about 5 years ago-
๐ This is the most significant release of this gem since its inception. This release includes many improvements and optimizations. It also includes several bug fixes. The major areas of focus for this release were:
- ๐ Stability improvements on Ruby versions with thread-level parallelism (JRuby and Rubinius)
- Creation of new low-level concurrency abstractions
- ๐จ Internal refactoring to use the new low-level abstractions
๐ Most of these updates had no effect on the gem API. There are a few notable exceptions which were unavoidable. Please read the [release notes](API-Updates-in-v0.5.0) for more information.
Specific changes include:
- ๐ New class
IVar
- ๐ New class
MVar
- ๐ New class
ThreadLocalVar
- ๐ New class
AtomicFixnum
- ๐ New class method
dataflow
- ๐ New class
Condition
- ๐ New class
CountDownLatch
- ๐ New class
DependencyCounter
- ๐ New class
SafeTaskExecutor
- ๐ New class
CopyOnNotifyObserverSet
- ๐ New class
CopyOnWriteObserverSet
- โก๏ธ
Future
updated withexecute
API - โก๏ธ
ScheduledTask
updated withexecute
API - ๐ New
Promise
API Future
now extendsIVar
Postable#post?
now returns anIVar
- ๐ Thread safety fixes to
Dereferenceable
- ๐ Thread safety fixes to
Obligation
- ๐ Thread safety fixes to
Supervisor
- ๐ Thread safety fixes to
Event
- ๐ Various other thread safety (race condition) fixes
- ๐จ Refactored brittle tests
- โ Implemented pending tests
- โ Added JRuby and Rubinius as Travis CI build targets
- โ Added CodeClimate code review
- ๐ Improved YARD documentation