Concurrent Ruby v0.6.0 Release Notes

Release Date: 2014-05-25 // almost 10 years ago
    • โž• Added Concurrent::Observable to encapsulate our thread safe observer sets
    • ๐Ÿ‘Œ Improvements to new Channel
    • ๐Ÿ›  Major improvements to CachedThreadPool and FixedThreadPool
    • โž• Added SingleThreadExecutor
    • โž• Added Current::timer function
    • โž• Added TimerSet executor
    • โž• Added AtomicBoolean
    • ๐Ÿ”จ ScheduledTask refactoring
    • โšก๏ธ Pure Ruby and JRuby-optimized PriorityQueue classes
    • โšก๏ธ Updated Agent behavior to more closely match Clojure
    • ๐Ÿ‘ Observer sets support block callbacks to the add_observer method
    • ๐Ÿ†• New algorithm for thread creation in RubyThreadPoolExecutor
    • โšก๏ธ Minor API updates to Event
    • Rewritten TimerTask now an Executor instead of a Runnable
    • ๐Ÿ›  Fixed many brittle specs
    • ๐Ÿ’Ž Renamed FixedThreadPool and CachedThreadPool to RubyFixedThreadPool and RubyCachedThreadPool
    • โšก๏ธ Created JRuby optimized JavaFixedThreadPool and JavaCachedThreadPool
    • Consolidated fixed thread pool tests into spec/concurrent/fixed_thread_pool_shared.rb and spec/concurrent/cached_thread_pool_shared.rb
    • ๐Ÿ’Ž FixedThreadPool now subclasses RubyFixedThreadPool or JavaFixedThreadPool as appropriate
    • ๐Ÿ’Ž CachedThreadPool now subclasses RubyCachedThreadPool or JavaCachedThreadPool as appropriate
    • ๐Ÿ†• New Delay class
    • Concurrent::processor_count helper function
    • ๐Ÿ†• New Async module
    • ๐Ÿ“‡ Renamed NullThreadPool to PerThreadExecutor
    • ๐Ÿ”Š Deprecated Channel (we are planning a new implementation based on Go)
    • โž• Added gem-level configuration
    • Deprecated $GLOBAL_THREAD_POOL in lieu of gem-level configuration
    • โœ‚ Removed support for Ruby 1.9.2
    • ๐Ÿ†• New RubyThreadPoolExecutor and JavaThreadPoolExecutor classes
    • All thread pools now extend the appropriate thread pool executor classes
    • ๐Ÿ“„ All thread pools now support :overflow_policy (based on Java's reject policies)
    • ๐Ÿ—„ Deprecated UsesGlobalThreadPool in lieu of explicit :executor option (dependency injection) on Future, Promise, and Agent
    • Added Concurrent::dataflow_with(executor, *inputs) method to support executor dependency injection for dataflow
    • Software transactional memory with TVar and Concurrent::atomically
    • ๐ŸŽ First implementation of new, high-performance Channel
    • ๐Ÿš€ Actor is deprecated in favor of new experimental actor implementation #73. To avoid namespace collision it is living in Actress namespace until Actor is removed in next release.