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 with execute API
    • โšก๏ธ ScheduledTask updated with execute API
    • ๐Ÿ†• New Promise API
    • Future now extends IVar
    • Postable#post? now returns an IVar
    • ๐Ÿ›  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