Skip to content

Releases: ruby-concurrency/concurrent-ruby

v0.9.0.pre3

22 Jun 12:56
Compare
Choose a tag to compare
v0.9.0.pre3 Pre-release
Pre-release

Finalizing API and Yardoc. We plan mostly bug/test fixes between now and the full release of 0.9.0.

v0.9.0.pre2

08 Jun 04:24
Compare
Choose a tag to compare
v0.9.0.pre2 Pre-release
Pre-release

Finalizing API and Yardoc. We plan mostly bug/test fixes between now and the full release of 0.9.0.

v0.9.0.pre1

27 May 02:21
Compare
Choose a tag to compare
v0.9.0.pre1 Pre-release
Pre-release

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.

0.8.0

25 Jan 17:51
Compare
Choose a tag to compare

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-ext companion gem.
    Please see the README for more detail.
  • Better variable isolation in Promise and Future via an :args option
  • Continued to update intermittently failing tests

Extension Gem Pre-release 3

25 Jan 07:57
Compare
Choose a tag to compare
Pre-release

A private release used to fix and test pre-compiled extensions for Windows. It was never pushed to Rubygems.

0.7.2

25 Jan 00:42
Compare
Choose a tag to compare
  • New Semaphore class based on java.util.concurrent.Semaphore
  • New Promise.all? and Promise.any? class methods
  • Renamed :overflow_policy on thread pools to :fallback_policy
  • Thread pools still accept the :overflow_policy option but display a warning
  • Thread pools now implement fallback_policy behavior when not running (rather than universally rejecting tasks)
  • Fixed minor set_deref_options constructor bug in Promise class
  • Fixed minor require bug in ThreadLocalVar class
  • Fixed race condition bug in TimerSet class
  • Fixed race condition bug in TimerSet class
  • Fixed signal bug in TimerSet#post method
  • 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

Extension Gem Pre-release 2

15 Jan 03:57
Compare
Choose a tag to compare
Pre-release

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.

Extension Gem Pre-release 1

18 Dec 00:17
Compare
Choose a tag to compare
Pre-release

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.

0.7.1

05 Dec 01:51
Compare
Choose a tag to compare
  • Added flat_map method to Promise
  • Added zip method to Promise
  • Fixed bug with logging in Actor
  • Improvements to Promise tests
  • Removed actor-experimental warning
  • Added an IndirectImmediateExecutor class
  • Allow disabling auto termination of global executors
  • Fix thread leaking in ThreadLocalVar (uses Ref gem on non-JRuby systems)
  • Fix thread leaking when pruning pure-Ruby thread pools
  • Prevent Actor from using an ImmediateExecutor (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 JavaThreadPoolExecutor with minimum pool size of zero
  • Removed confusing warning when not using native extenstions
  • Improved documentation

0.7.0

13 Aug 20:49
Compare
Choose a tag to compare
  • Merge the atomic gem
    • Pure Ruby MutexAtomic atomic reference class
    • Platform native atomic reference classes CAtomic, JavaAtomic, and RbxAtomic
    • 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
  • C native CAtomicBoolean
  • C native CAtomicFixnum
  • Refactored intermittently failing tests
  • Added dataflow! and dataflow_with! methods to match Future#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. RestartingContext will 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_one and :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 Actor class removed and replaced by new implementation previously called Actress. Actress was kept as an alias for Actor to keep compatibility.
    • Utils::Broadcast actor which allows Publish–subscribe pattern.
  • More executors for managing serialized operations
    • SerializedExecution mixin module
    • SerializedExecutionDelegator for serializing any executor
  • Updated Async with serialized execution
  • Updated ImmediateExecutor and PerThreadExecutor with full executor service lifecycle
  • Added a Delay to root Actress initialization
  • 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 RubyCachedThreadPool overflow policy
  • Updated tests to use RSpec 3.0
  • Removed deprecated Actor class
  • Better support for Rubinius