From 3b3f9bff4eb24dd8bed0112bd79e9b5a338ff2c1 Mon Sep 17 00:00:00 2001 From: Petr Chalupa Date: Thu, 1 Nov 2018 12:52:31 +0100 Subject: [PATCH] Put 1.9.3 support back --- .travis.yml | 5 ++ CHANGELOG.md | 8 ++ Gemfile | 2 +- README.md | 8 +- Rakefile | 5 +- concurrent-ruby-edge.gemspec | 4 +- concurrent-ruby-ext.gemspec | 4 +- concurrent-ruby.gemspec | 6 +- docs-source/signpost.md | 2 +- docs/{1.1.0 => 1.1.1}/Concurrent.html | 14 +++- docs/{1.1.0 => 1.1.1}/Concurrent/Actor.html | 0 .../Concurrent/Actor/AbstractContext.html | 0 .../Concurrent/Actor/ActorTerminated.html | 0 .../Concurrent/Actor/Behaviour.html | 0 .../Concurrent/Actor/Behaviour/Abstract.html | 0 .../Concurrent/Actor/Behaviour/Awaits.html | 0 .../Concurrent/Actor/Behaviour/Buffer.html | 0 .../Behaviour/ErrorsOnUnknownMessage.html | 0 .../Actor/Behaviour/ExecutesContext.html | 0 .../Concurrent/Actor/Behaviour/Linking.html | 0 .../Concurrent/Actor/Behaviour/Pausing.html | 0 .../Actor/Behaviour/RemovesChild.html | 0 .../Actor/Behaviour/SetResults.html | 0 .../Actor/Behaviour/Supervising.html | 0 .../Actor/Behaviour/Termination.html | 0 .../Concurrent/Actor/Context.html | 0 .../Concurrent/Actor/Core.html | 0 .../Actor/DefaultDeadLetterHandler.html | 0 .../Concurrent/Actor/Envelope.html | 0 .../Concurrent/Actor/InternalDelegations.html | 0 .../Concurrent/Actor/PublicDelegations.html | 0 .../Concurrent/Actor/Reference.html | 0 .../Concurrent/Actor/RestartingContext.html | 0 .../Concurrent/Actor/Root.html | 0 .../Concurrent/Actor/TypeCheck.html | 0 .../Concurrent/Actor/UnknownMessage.html | 0 .../Concurrent/Actor/Utils.html | 0 .../Concurrent/Actor/Utils/AdHoc.html | 0 .../Concurrent/Actor/Utils/AsAdHoc.html | 0 .../Concurrent/Actor/Utils/Balancer.html | 0 .../Concurrent/Actor/Utils/Broadcast.html | 0 .../Concurrent/Actor/Utils/Pool.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Agent.html | 0 .../Concurrent/Agent/Error.html | 0 .../Concurrent/Agent/ValidationError.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Array.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Async.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Atom.html | 0 .../Concurrent/AtomicBoolean.html | 0 .../Concurrent/AtomicFixnum.html | 0 .../Concurrent/AtomicMarkableReference.html | 0 .../Concurrent/AtomicReference.html | 0 .../Concurrent/CachedThreadPool.html | 0 .../Concurrent/Cancellation.html | 0 .../Concurrent/Cancellation/Token.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Channel.html | 0 .../Concurrent/Channel/Buffer.html | 0 .../Concurrent/Channel/Buffer/Base.html | 0 .../Concurrent/Channel/Buffer/Buffered.html | 0 .../Concurrent/Channel/Buffer/Dropping.html | 0 .../Concurrent/Channel/Buffer/Sliding.html | 0 .../Concurrent/Channel/Buffer/Ticker.html | 0 .../Concurrent/Channel/Buffer/Timer.html | 0 .../Concurrent/Channel/Buffer/Unbuffered.html | 0 .../Channel/Selector/AfterClause.html | 0 .../Channel/Selector/DefaultClause.html | 0 .../Channel/Selector/ErrorClause.html | 0 .../Channel/Selector/PutClause.html | 0 .../Channel/Selector/TakeClause.html | 0 .../Concurrent/Channel/Tick.html | 0 .../Concurrent/Channel/ValidationError.html | 0 .../Collection/CopyOnNotifyObserverSet.html | 0 .../Collection/CopyOnWriteObserverSet.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Concern.html | 0 .../Concurrent/Concern/Dereferenceable.html | 0 .../Concurrent/Concern/Obligation.html | 0 .../Concurrent/Concern/Observable.html | 0 .../Concurrent/ConcurrentUpdateError.html | 0 .../Concurrent/CountDownLatch.html | 0 .../Concurrent/CyclicBarrier.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Delay.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Edge.html | 0 .../Concurrent/Edge/LockFreeLinkedSet.html | 0 .../Edge/LockFreeLinkedSet/Head.html | 0 .../Edge/LockFreeLinkedSet/Node.html | 0 .../Edge/LockFreeLinkedSet/Tail.html | 0 .../Edge/LockFreeLinkedSet/Window.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Event.html | 0 .../Concurrent/Exchanger.html | 0 .../Concurrent/FixedThreadPool.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Future.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Hash.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/IVar.html | 0 .../Concurrent/ImmediateExecutor.html | 0 .../Concurrent/ImmutableStruct.html | 0 .../Concurrent/IndirectImmediateExecutor.html | 0 .../Concurrent/LazyRegister.html | 0 .../Concurrent/LockFreeQueue/Node.html | 0 .../Concurrent/LockFreeStack.html | 0 .../Concurrent/LockFreeStack/Node.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/MVar.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Map.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Maybe.html | 0 .../Concurrent/MultipleAssignmentError.html | 0 .../Concurrent/MultipleErrors.html | 0 .../Concurrent/MutableStruct.html | 0 .../Concurrent/ProcessingActor.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Promise.html | 0 .../{1.1.0 => 1.1.1}/Concurrent/Promises.html | 0 .../Promises/AbstractEventFuture.html | 0 .../ThrottleIntegration.html | 0 .../Concurrent/Promises/Channel.html | 0 .../Concurrent/Promises/Event.html | 0 .../Concurrent/Promises/FactoryMethods.html | 0 .../FactoryMethods/Configuration.html | 0 .../FactoryMethods/NewChannelIntegration.html | 0 .../Concurrent/Promises/Future.html | 0 .../Promises/Future/ActorIntegration.html | 0 .../Promises/Future/FlatShortcuts.html | 0 .../Future/NewChannelIntegration.html | 0 .../Promises/Future/ThrottleIntegration.html | 0 .../Concurrent/Promises/Resolvable.html | 0 .../Concurrent/Promises/ResolvableEvent.html | 0 .../Concurrent/Promises/ResolvableFuture.html | 0 .../Concurrent/ReInclude.html | 0 .../Concurrent/ReadWriteLock.html | 0 .../Concurrent/ReentrantReadWriteLock.html | 0 .../Concurrent/SafeTaskExecutor.html | 0 .../Concurrent/ScheduledTask.html | 0 .../Concurrent/Semaphore.html | 0 .../Concurrent/SerializedExecution.html | 0 .../Concurrent/SerializedExecution/Job.html | 0 .../SerializedExecutionDelegator.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Set.html | 0 .../Concurrent/SettableStruct.html | 0 .../Concurrent/SimpleExecutorService.html | 0 .../Concurrent/SingleThreadExecutor.html | 0 .../Concurrent/Synchronization.html | 0 .../Concurrent/Synchronization/Condition.html | 0 .../Synchronization/JRubyAttrVolatile.html | 0 .../JRubyAttrVolatile/ClassMethods.html | 0 .../Concurrent/Synchronization/Lock.html | 0 .../Synchronization/MriAttrVolatile.html | 0 .../MriAttrVolatile/ClassMethods.html | 0 .../Concurrent/Synchronization/Object.html | 0 .../Synchronization/RbxAttrVolatile.html | 0 .../RbxAttrVolatile/ClassMethods.html | 0 .../TruffleRubyAttrVolatile.html | 0 .../TruffleRubyAttrVolatile/ClassMethods.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/TVar.html | 0 .../Concurrent/ThreadLocalVar.html | 0 .../Concurrent/ThreadPoolExecutor.html | 0 .../ThreadSafe/Util/XorShiftRandom.html | 0 .../{1.1.0 => 1.1.1}/Concurrent/Throttle.html | 0 .../Throttle/PromisesIntegration.html | 0 .../{1.1.0 => 1.1.1}/Concurrent/TimerSet.html | 0 .../Concurrent/TimerTask.html | 0 .../Concurrent/Transaction.html | 0 .../Concurrent/Transaction/ReadLogEntry.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Tuple.html | 0 docs/{1.1.0 => 1.1.1}/Concurrent/Utility.html | 0 docs/{1.1.0 => 1.1.1}/_index.html | 0 docs/{1.1.0 => 1.1.1}/class_list.html | 0 docs/{1.1.0 => 1.1.1}/css/common.css | 0 docs/{1.1.0 => 1.1.1}/css/full_list.css | 0 docs/{1.1.0 => 1.1.1}/css/style.css | 0 docs/{1.1.0 => 1.1.1}/file.CHANGELOG.html | 13 +++ docs/{1.1.0 => 1.1.1}/file.LICENSE.html | 0 docs/{1.1.0 => 1.1.1}/file.README.html | 10 ++- docs/{1.1.0 => 1.1.1}/file.promises.out.html | 0 docs/{1.1.0 => 1.1.1}/file.thread_pools.html | 0 docs/{1.1.0 => 1.1.1}/file_list.html | 0 docs/{1.1.0 => 1.1.1}/frames.html | 0 docs/{1.1.0 => 1.1.1}/index.html | 10 ++- docs/{1.1.0 => 1.1.1}/js/app.js | 0 docs/{1.1.0 => 1.1.1}/js/full_list.js | 0 docs/{1.1.0 => 1.1.1}/js/jquery.js | 0 docs/{1.1.0 => 1.1.1}/method_list.html | 0 .../{1.1.0 => 1.1.1}/top-level-namespace.html | 0 docs/master/Concurrent.html | 14 +++- docs/master/file.CHANGELOG.html | 13 +++ docs/master/file.README.html | 10 ++- docs/master/file.promises.out.html | 82 +++++++++---------- docs/master/index.html | 10 ++- .../ext/SynchronizationLibrary.java | 24 +++--- lib/concurrent.rb | 2 + .../atomic/java_count_down_latch.rb | 6 +- lib/concurrent/exchanger.rb | 16 ++-- lib/concurrent/utility/193.rb | 17 ++++ lib/concurrent/utility/engine.rb | 4 +- lib/concurrent/version.rb | 4 +- 191 files changed, 200 insertions(+), 93 deletions(-) rename docs/{1.1.0 => 1.1.1}/Concurrent.html (99%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/AbstractContext.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/ActorTerminated.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/Abstract.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/Awaits.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/Buffer.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/ErrorsOnUnknownMessage.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/ExecutesContext.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/Linking.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/Pausing.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/RemovesChild.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/SetResults.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/Supervising.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Behaviour/Termination.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Context.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Core.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/DefaultDeadLetterHandler.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Envelope.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/InternalDelegations.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/PublicDelegations.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Reference.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/RestartingContext.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Root.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/TypeCheck.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/UnknownMessage.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Utils.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Utils/AdHoc.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Utils/AsAdHoc.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Utils/Balancer.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Utils/Broadcast.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Actor/Utils/Pool.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Agent.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Agent/Error.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Agent/ValidationError.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Array.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Async.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Atom.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/AtomicBoolean.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/AtomicFixnum.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/AtomicMarkableReference.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/AtomicReference.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/CachedThreadPool.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Cancellation.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Cancellation/Token.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Buffer.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Buffer/Base.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Buffer/Buffered.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Buffer/Dropping.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Buffer/Sliding.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Buffer/Ticker.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Buffer/Timer.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Buffer/Unbuffered.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Selector/AfterClause.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Selector/DefaultClause.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Selector/ErrorClause.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Selector/PutClause.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Selector/TakeClause.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/Tick.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Channel/ValidationError.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Collection/CopyOnNotifyObserverSet.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Collection/CopyOnWriteObserverSet.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Concern.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Concern/Dereferenceable.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Concern/Obligation.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Concern/Observable.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ConcurrentUpdateError.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/CountDownLatch.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/CyclicBarrier.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Delay.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Edge.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Edge/LockFreeLinkedSet.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Edge/LockFreeLinkedSet/Head.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Edge/LockFreeLinkedSet/Node.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Edge/LockFreeLinkedSet/Tail.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Edge/LockFreeLinkedSet/Window.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Event.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Exchanger.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/FixedThreadPool.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Future.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Hash.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/IVar.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ImmediateExecutor.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ImmutableStruct.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/IndirectImmediateExecutor.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/LazyRegister.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/LockFreeQueue/Node.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/LockFreeStack.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/LockFreeStack/Node.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/MVar.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Map.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Maybe.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/MultipleAssignmentError.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/MultipleErrors.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/MutableStruct.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ProcessingActor.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promise.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/AbstractEventFuture.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/AbstractEventFuture/ThrottleIntegration.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/Channel.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/Event.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/FactoryMethods.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/FactoryMethods/Configuration.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/FactoryMethods/NewChannelIntegration.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/Future.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/Future/ActorIntegration.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/Future/FlatShortcuts.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/Future/NewChannelIntegration.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/Future/ThrottleIntegration.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/Resolvable.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/ResolvableEvent.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Promises/ResolvableFuture.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ReInclude.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ReadWriteLock.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ReentrantReadWriteLock.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/SafeTaskExecutor.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ScheduledTask.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Semaphore.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/SerializedExecution.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/SerializedExecution/Job.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/SerializedExecutionDelegator.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Set.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/SettableStruct.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/SimpleExecutorService.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/SingleThreadExecutor.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/Condition.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/JRubyAttrVolatile.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/JRubyAttrVolatile/ClassMethods.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/Lock.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/MriAttrVolatile.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/MriAttrVolatile/ClassMethods.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/Object.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/RbxAttrVolatile.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/RbxAttrVolatile/ClassMethods.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/TruffleRubyAttrVolatile.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Synchronization/TruffleRubyAttrVolatile/ClassMethods.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/TVar.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ThreadLocalVar.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ThreadPoolExecutor.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/ThreadSafe/Util/XorShiftRandom.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Throttle.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Throttle/PromisesIntegration.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/TimerSet.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/TimerTask.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Transaction.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Transaction/ReadLogEntry.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Tuple.html (100%) rename docs/{1.1.0 => 1.1.1}/Concurrent/Utility.html (100%) rename docs/{1.1.0 => 1.1.1}/_index.html (100%) rename docs/{1.1.0 => 1.1.1}/class_list.html (100%) rename docs/{1.1.0 => 1.1.1}/css/common.css (100%) rename docs/{1.1.0 => 1.1.1}/css/full_list.css (100%) rename docs/{1.1.0 => 1.1.1}/css/style.css (100%) rename docs/{1.1.0 => 1.1.1}/file.CHANGELOG.html (99%) rename docs/{1.1.0 => 1.1.1}/file.LICENSE.html (100%) rename docs/{1.1.0 => 1.1.1}/file.README.html (98%) rename docs/{1.1.0 => 1.1.1}/file.promises.out.html (100%) rename docs/{1.1.0 => 1.1.1}/file.thread_pools.html (100%) rename docs/{1.1.0 => 1.1.1}/file_list.html (100%) rename docs/{1.1.0 => 1.1.1}/frames.html (100%) rename docs/{1.1.0 => 1.1.1}/index.html (98%) rename docs/{1.1.0 => 1.1.1}/js/app.js (100%) rename docs/{1.1.0 => 1.1.1}/js/full_list.js (100%) rename docs/{1.1.0 => 1.1.1}/js/jquery.js (100%) rename docs/{1.1.0 => 1.1.1}/method_list.html (100%) rename docs/{1.1.0 => 1.1.1}/top-level-namespace.html (100%) create mode 100644 lib/concurrent/utility/193.rb diff --git a/.travis.yml b/.travis.yml index dbafc9997..48c86be5b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,6 +36,8 @@ matrix: rvm: 2.1.10 - name: MRI 2.0.0 rvm: 2.0.0 + - name: MRI 1.9.3 + rvm: 1.9.3 - name: JRuby 9.1.17.0 rvm: jruby-9.1.17.0 @@ -43,6 +45,9 @@ matrix: - name: JRuby 9.0.5.0 rvm: jruby-9.0.5.0 jdk: oraclejdk8 + - name: JRuby 1.7.27 + rvm: jruby-1.7.27 + jdk: oraclejdk8 - name: MRI head rvm: ruby-head diff --git a/CHANGELOG.md b/CHANGELOG.md index 3150cf2d0..3a5fdc384 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ ## Current +## Release v1.1.1, edge v0.4.1 (1 Nov 2018) + +* (#768) add support for 1.9.3 back + +## Release v1.1.0, edge v0.4.0 (31 OCt 2018) (yanked) + +* (#768) yanked because of issues with removed 1.9.3 support + ## Release v1.1.0.pre2, edge v0.4.0.pre2 (18 Sep 2018) concurrent-ruby: diff --git a/Gemfile b/Gemfile index 61be9d28f..21bffcdbc 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' -require_relative 'lib/concurrent/version' +require File.join(File.dirname(__FILE__ ), 'lib/concurrent/version') no_path = ENV['NO_PATH'] options = no_path ? {} : { path: '.' } diff --git a/README.md b/README.md index 70b188951..eae85c604 100644 --- a/README.md +++ b/README.md @@ -227,8 +227,12 @@ be obeyed though. Features developed in `concurrent-ruby-edge` are expected to m ## Supported Ruby versions -MRI 2.0 and above, JRuby 9000, TruffleRuby are supported. -This gem should be fully compatible with any interpreter that is compliant with Ruby 2.0 or newer. +* MRI 2.0 and above +* JRuby 9000 +* TruffleRuby are supported. +* Any Ruby interpreter that is compliant with Ruby 2.0 or newer. + +Actually we still support mri 1.9.3 and jruby 1.7.27 but we are looking at ways how to drop the support. Java 8 is preferred for JRuby but every Java version on which JRuby 9000 runs is supported. The legacy support for Rubinius is kept but it is no longer maintained, if you would like to help diff --git a/Rakefile b/Rakefile index 4a332ca10..51e39f5cf 100644 --- a/Rakefile +++ b/Rakefile @@ -2,6 +2,7 @@ require_relative 'lib/concurrent/version' require_relative 'lib/concurrent/utility/engine' +require_relative 'lib/concurrent/utility/193' core_gemspec = Gem::Specification.load File.join(__dir__, 'concurrent-ruby.gemspec') ext_gemspec = Gem::Specification.load File.join(__dir__, 'concurrent-ruby-ext.gemspec') @@ -16,8 +17,8 @@ class ConcurrentRubyJavaExtensionTask < Rake::JavaExtensionTask jruby_cpath = nil if RUBY_PLATFORM =~ /java/ begin - cpath = Java::java.lang.System.getProperty('java.class.path').split(File::PATH_SEPARATOR) - cpath += Java::java.lang.System.getProperty('sun.boot.class.path').split(File::PATH_SEPARATOR) + cpath = Java::java.lang.System.getProperty('java.class.path').split(File::PATH_SEPARATOR) + cpath += Java::java.lang.System.getProperty('sun.boot.class.path').split(File::PATH_SEPARATOR) jruby_cpath = cpath.compact.join(File::PATH_SEPARATOR) rescue => e end diff --git a/concurrent-ruby-edge.gemspec b/concurrent-ruby-edge.gemspec index 4e3d91c23..3b19c6db2 100644 --- a/concurrent-ruby-edge.gemspec +++ b/concurrent-ruby-edge.gemspec @@ -1,4 +1,4 @@ -require_relative 'lib/concurrent/version' +require File.join(File.dirname(__FILE__ ), 'lib/concurrent/version') Gem::Specification.new do |s| git_files = `git ls-files`.split("\n") @@ -22,7 +22,7 @@ be obeyed though. Features developed in `concurrent-ruby-edge` are expected to m Please see http://concurrent-ruby.com for more information. TXT - s.required_ruby_version = '>= 2.0.0' + s.required_ruby_version = '>= 1.9.3' s.add_runtime_dependency 'concurrent-ruby', "~> #{Concurrent::VERSION}" end diff --git a/concurrent-ruby-ext.gemspec b/concurrent-ruby-ext.gemspec index ed31b6605..f8053c930 100644 --- a/concurrent-ruby-ext.gemspec +++ b/concurrent-ruby-ext.gemspec @@ -1,4 +1,4 @@ -require_relative 'lib/concurrent/version' +require File.join(File.dirname(__FILE__ ), 'lib/concurrent/version') Gem::Specification.new do |s| s.name = 'concurrent-ruby-ext' @@ -21,7 +21,7 @@ Gem::Specification.new do |s| s.require_paths = ['lib'] s.extensions = 'ext/concurrent-ruby-ext/extconf.rb' - s.required_ruby_version = '>= 2.0.0' + s.required_ruby_version = '>= 1.9.3' s.add_runtime_dependency 'concurrent-ruby', "= #{Concurrent::VERSION}" end diff --git a/concurrent-ruby.gemspec b/concurrent-ruby.gemspec index 8c14e6d4c..2a6d674d7 100644 --- a/concurrent-ruby.gemspec +++ b/concurrent-ruby.gemspec @@ -1,5 +1,5 @@ -require_relative 'lib/concurrent/version' -require_relative 'lib/concurrent/utility/engine' +require File.join(File.dirname(__FILE__ ), 'lib/concurrent/version') +require File.join(File.dirname(__FILE__ ), 'lib/concurrent/utility/engine') Gem::Specification.new do |s| git_files = `git ls-files`.split("\n") @@ -25,5 +25,5 @@ Gem::Specification.new do |s| Inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency patterns. TXT - s.required_ruby_version = '>= 2.0.0' + s.required_ruby_version = '>= 1.9.3' end diff --git a/docs-source/signpost.md b/docs-source/signpost.md index 72894b65a..ca31d9cdf 100644 --- a/docs-source/signpost.md +++ b/docs-source/signpost.md @@ -3,5 +3,5 @@ Pick a version: * [master](./master/index.html) -* [1.1.0](./1.1.0/index.html) +* [1.1.1](./1.1.1/index.html) * [1.0.5](./1.0.5/index.html) diff --git a/docs/1.1.0/Concurrent.html b/docs/1.1.1/Concurrent.html similarity index 99% rename from docs/1.1.0/Concurrent.html rename to docs/1.1.1/Concurrent.html index df10f3816..be65511ca 100644 --- a/docs/1.1.0/Concurrent.html +++ b/docs/1.1.1/Concurrent.html @@ -343,8 +343,14 @@

Edge Features

Supported Ruby versions

-

MRI 2.0 and above, JRuby 9000, TruffleRuby are supported. -This gem should be fully compatible with any interpreter that is compliant with Ruby 2.0 or newer. +

+ +

Actually we still support mri 1.9.3 and jruby 1.7.27 but we are looking at ways how to drop the support. Java 8 is preferred for JRuby but every Java version on which JRuby 9000 runs is supported.

The legacy support for Rubinius is kept but it is no longer maintained, if you would like to help @@ -653,12 +659,12 @@

VERSION =
-
'1.1.0'
+
'1.1.1'
EDGE_VERSION =
-
'0.4.0'
+
'0.4.1'
NULL_LOGGER =
diff --git a/docs/1.1.0/Concurrent/Actor.html b/docs/1.1.1/Concurrent/Actor.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor.html rename to docs/1.1.1/Concurrent/Actor.html diff --git a/docs/1.1.0/Concurrent/Actor/AbstractContext.html b/docs/1.1.1/Concurrent/Actor/AbstractContext.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/AbstractContext.html rename to docs/1.1.1/Concurrent/Actor/AbstractContext.html diff --git a/docs/1.1.0/Concurrent/Actor/ActorTerminated.html b/docs/1.1.1/Concurrent/Actor/ActorTerminated.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/ActorTerminated.html rename to docs/1.1.1/Concurrent/Actor/ActorTerminated.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour.html b/docs/1.1.1/Concurrent/Actor/Behaviour.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour.html rename to docs/1.1.1/Concurrent/Actor/Behaviour.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/Abstract.html b/docs/1.1.1/Concurrent/Actor/Behaviour/Abstract.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/Abstract.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/Abstract.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/Awaits.html b/docs/1.1.1/Concurrent/Actor/Behaviour/Awaits.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/Awaits.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/Awaits.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/Buffer.html b/docs/1.1.1/Concurrent/Actor/Behaviour/Buffer.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/Buffer.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/Buffer.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/ErrorsOnUnknownMessage.html b/docs/1.1.1/Concurrent/Actor/Behaviour/ErrorsOnUnknownMessage.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/ErrorsOnUnknownMessage.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/ErrorsOnUnknownMessage.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/ExecutesContext.html b/docs/1.1.1/Concurrent/Actor/Behaviour/ExecutesContext.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/ExecutesContext.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/ExecutesContext.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/Linking.html b/docs/1.1.1/Concurrent/Actor/Behaviour/Linking.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/Linking.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/Linking.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/Pausing.html b/docs/1.1.1/Concurrent/Actor/Behaviour/Pausing.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/Pausing.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/Pausing.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/RemovesChild.html b/docs/1.1.1/Concurrent/Actor/Behaviour/RemovesChild.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/RemovesChild.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/RemovesChild.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/SetResults.html b/docs/1.1.1/Concurrent/Actor/Behaviour/SetResults.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/SetResults.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/SetResults.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/Supervising.html b/docs/1.1.1/Concurrent/Actor/Behaviour/Supervising.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/Supervising.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/Supervising.html diff --git a/docs/1.1.0/Concurrent/Actor/Behaviour/Termination.html b/docs/1.1.1/Concurrent/Actor/Behaviour/Termination.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Behaviour/Termination.html rename to docs/1.1.1/Concurrent/Actor/Behaviour/Termination.html diff --git a/docs/1.1.0/Concurrent/Actor/Context.html b/docs/1.1.1/Concurrent/Actor/Context.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Context.html rename to docs/1.1.1/Concurrent/Actor/Context.html diff --git a/docs/1.1.0/Concurrent/Actor/Core.html b/docs/1.1.1/Concurrent/Actor/Core.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Core.html rename to docs/1.1.1/Concurrent/Actor/Core.html diff --git a/docs/1.1.0/Concurrent/Actor/DefaultDeadLetterHandler.html b/docs/1.1.1/Concurrent/Actor/DefaultDeadLetterHandler.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/DefaultDeadLetterHandler.html rename to docs/1.1.1/Concurrent/Actor/DefaultDeadLetterHandler.html diff --git a/docs/1.1.0/Concurrent/Actor/Envelope.html b/docs/1.1.1/Concurrent/Actor/Envelope.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Envelope.html rename to docs/1.1.1/Concurrent/Actor/Envelope.html diff --git a/docs/1.1.0/Concurrent/Actor/InternalDelegations.html b/docs/1.1.1/Concurrent/Actor/InternalDelegations.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/InternalDelegations.html rename to docs/1.1.1/Concurrent/Actor/InternalDelegations.html diff --git a/docs/1.1.0/Concurrent/Actor/PublicDelegations.html b/docs/1.1.1/Concurrent/Actor/PublicDelegations.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/PublicDelegations.html rename to docs/1.1.1/Concurrent/Actor/PublicDelegations.html diff --git a/docs/1.1.0/Concurrent/Actor/Reference.html b/docs/1.1.1/Concurrent/Actor/Reference.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Reference.html rename to docs/1.1.1/Concurrent/Actor/Reference.html diff --git a/docs/1.1.0/Concurrent/Actor/RestartingContext.html b/docs/1.1.1/Concurrent/Actor/RestartingContext.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/RestartingContext.html rename to docs/1.1.1/Concurrent/Actor/RestartingContext.html diff --git a/docs/1.1.0/Concurrent/Actor/Root.html b/docs/1.1.1/Concurrent/Actor/Root.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Root.html rename to docs/1.1.1/Concurrent/Actor/Root.html diff --git a/docs/1.1.0/Concurrent/Actor/TypeCheck.html b/docs/1.1.1/Concurrent/Actor/TypeCheck.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/TypeCheck.html rename to docs/1.1.1/Concurrent/Actor/TypeCheck.html diff --git a/docs/1.1.0/Concurrent/Actor/UnknownMessage.html b/docs/1.1.1/Concurrent/Actor/UnknownMessage.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/UnknownMessage.html rename to docs/1.1.1/Concurrent/Actor/UnknownMessage.html diff --git a/docs/1.1.0/Concurrent/Actor/Utils.html b/docs/1.1.1/Concurrent/Actor/Utils.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Utils.html rename to docs/1.1.1/Concurrent/Actor/Utils.html diff --git a/docs/1.1.0/Concurrent/Actor/Utils/AdHoc.html b/docs/1.1.1/Concurrent/Actor/Utils/AdHoc.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Utils/AdHoc.html rename to docs/1.1.1/Concurrent/Actor/Utils/AdHoc.html diff --git a/docs/1.1.0/Concurrent/Actor/Utils/AsAdHoc.html b/docs/1.1.1/Concurrent/Actor/Utils/AsAdHoc.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Utils/AsAdHoc.html rename to docs/1.1.1/Concurrent/Actor/Utils/AsAdHoc.html diff --git a/docs/1.1.0/Concurrent/Actor/Utils/Balancer.html b/docs/1.1.1/Concurrent/Actor/Utils/Balancer.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Utils/Balancer.html rename to docs/1.1.1/Concurrent/Actor/Utils/Balancer.html diff --git a/docs/1.1.0/Concurrent/Actor/Utils/Broadcast.html b/docs/1.1.1/Concurrent/Actor/Utils/Broadcast.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Utils/Broadcast.html rename to docs/1.1.1/Concurrent/Actor/Utils/Broadcast.html diff --git a/docs/1.1.0/Concurrent/Actor/Utils/Pool.html b/docs/1.1.1/Concurrent/Actor/Utils/Pool.html similarity index 100% rename from docs/1.1.0/Concurrent/Actor/Utils/Pool.html rename to docs/1.1.1/Concurrent/Actor/Utils/Pool.html diff --git a/docs/1.1.0/Concurrent/Agent.html b/docs/1.1.1/Concurrent/Agent.html similarity index 100% rename from docs/1.1.0/Concurrent/Agent.html rename to docs/1.1.1/Concurrent/Agent.html diff --git a/docs/1.1.0/Concurrent/Agent/Error.html b/docs/1.1.1/Concurrent/Agent/Error.html similarity index 100% rename from docs/1.1.0/Concurrent/Agent/Error.html rename to docs/1.1.1/Concurrent/Agent/Error.html diff --git a/docs/1.1.0/Concurrent/Agent/ValidationError.html b/docs/1.1.1/Concurrent/Agent/ValidationError.html similarity index 100% rename from docs/1.1.0/Concurrent/Agent/ValidationError.html rename to docs/1.1.1/Concurrent/Agent/ValidationError.html diff --git a/docs/1.1.0/Concurrent/Array.html b/docs/1.1.1/Concurrent/Array.html similarity index 100% rename from docs/1.1.0/Concurrent/Array.html rename to docs/1.1.1/Concurrent/Array.html diff --git a/docs/1.1.0/Concurrent/Async.html b/docs/1.1.1/Concurrent/Async.html similarity index 100% rename from docs/1.1.0/Concurrent/Async.html rename to docs/1.1.1/Concurrent/Async.html diff --git a/docs/1.1.0/Concurrent/Atom.html b/docs/1.1.1/Concurrent/Atom.html similarity index 100% rename from docs/1.1.0/Concurrent/Atom.html rename to docs/1.1.1/Concurrent/Atom.html diff --git a/docs/1.1.0/Concurrent/AtomicBoolean.html b/docs/1.1.1/Concurrent/AtomicBoolean.html similarity index 100% rename from docs/1.1.0/Concurrent/AtomicBoolean.html rename to docs/1.1.1/Concurrent/AtomicBoolean.html diff --git a/docs/1.1.0/Concurrent/AtomicFixnum.html b/docs/1.1.1/Concurrent/AtomicFixnum.html similarity index 100% rename from docs/1.1.0/Concurrent/AtomicFixnum.html rename to docs/1.1.1/Concurrent/AtomicFixnum.html diff --git a/docs/1.1.0/Concurrent/AtomicMarkableReference.html b/docs/1.1.1/Concurrent/AtomicMarkableReference.html similarity index 100% rename from docs/1.1.0/Concurrent/AtomicMarkableReference.html rename to docs/1.1.1/Concurrent/AtomicMarkableReference.html diff --git a/docs/1.1.0/Concurrent/AtomicReference.html b/docs/1.1.1/Concurrent/AtomicReference.html similarity index 100% rename from docs/1.1.0/Concurrent/AtomicReference.html rename to docs/1.1.1/Concurrent/AtomicReference.html diff --git a/docs/1.1.0/Concurrent/CachedThreadPool.html b/docs/1.1.1/Concurrent/CachedThreadPool.html similarity index 100% rename from docs/1.1.0/Concurrent/CachedThreadPool.html rename to docs/1.1.1/Concurrent/CachedThreadPool.html diff --git a/docs/1.1.0/Concurrent/Cancellation.html b/docs/1.1.1/Concurrent/Cancellation.html similarity index 100% rename from docs/1.1.0/Concurrent/Cancellation.html rename to docs/1.1.1/Concurrent/Cancellation.html diff --git a/docs/1.1.0/Concurrent/Cancellation/Token.html b/docs/1.1.1/Concurrent/Cancellation/Token.html similarity index 100% rename from docs/1.1.0/Concurrent/Cancellation/Token.html rename to docs/1.1.1/Concurrent/Cancellation/Token.html diff --git a/docs/1.1.0/Concurrent/Channel.html b/docs/1.1.1/Concurrent/Channel.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel.html rename to docs/1.1.1/Concurrent/Channel.html diff --git a/docs/1.1.0/Concurrent/Channel/Buffer.html b/docs/1.1.1/Concurrent/Channel/Buffer.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Buffer.html rename to docs/1.1.1/Concurrent/Channel/Buffer.html diff --git a/docs/1.1.0/Concurrent/Channel/Buffer/Base.html b/docs/1.1.1/Concurrent/Channel/Buffer/Base.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Buffer/Base.html rename to docs/1.1.1/Concurrent/Channel/Buffer/Base.html diff --git a/docs/1.1.0/Concurrent/Channel/Buffer/Buffered.html b/docs/1.1.1/Concurrent/Channel/Buffer/Buffered.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Buffer/Buffered.html rename to docs/1.1.1/Concurrent/Channel/Buffer/Buffered.html diff --git a/docs/1.1.0/Concurrent/Channel/Buffer/Dropping.html b/docs/1.1.1/Concurrent/Channel/Buffer/Dropping.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Buffer/Dropping.html rename to docs/1.1.1/Concurrent/Channel/Buffer/Dropping.html diff --git a/docs/1.1.0/Concurrent/Channel/Buffer/Sliding.html b/docs/1.1.1/Concurrent/Channel/Buffer/Sliding.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Buffer/Sliding.html rename to docs/1.1.1/Concurrent/Channel/Buffer/Sliding.html diff --git a/docs/1.1.0/Concurrent/Channel/Buffer/Ticker.html b/docs/1.1.1/Concurrent/Channel/Buffer/Ticker.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Buffer/Ticker.html rename to docs/1.1.1/Concurrent/Channel/Buffer/Ticker.html diff --git a/docs/1.1.0/Concurrent/Channel/Buffer/Timer.html b/docs/1.1.1/Concurrent/Channel/Buffer/Timer.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Buffer/Timer.html rename to docs/1.1.1/Concurrent/Channel/Buffer/Timer.html diff --git a/docs/1.1.0/Concurrent/Channel/Buffer/Unbuffered.html b/docs/1.1.1/Concurrent/Channel/Buffer/Unbuffered.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Buffer/Unbuffered.html rename to docs/1.1.1/Concurrent/Channel/Buffer/Unbuffered.html diff --git a/docs/1.1.0/Concurrent/Channel/Selector/AfterClause.html b/docs/1.1.1/Concurrent/Channel/Selector/AfterClause.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Selector/AfterClause.html rename to docs/1.1.1/Concurrent/Channel/Selector/AfterClause.html diff --git a/docs/1.1.0/Concurrent/Channel/Selector/DefaultClause.html b/docs/1.1.1/Concurrent/Channel/Selector/DefaultClause.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Selector/DefaultClause.html rename to docs/1.1.1/Concurrent/Channel/Selector/DefaultClause.html diff --git a/docs/1.1.0/Concurrent/Channel/Selector/ErrorClause.html b/docs/1.1.1/Concurrent/Channel/Selector/ErrorClause.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Selector/ErrorClause.html rename to docs/1.1.1/Concurrent/Channel/Selector/ErrorClause.html diff --git a/docs/1.1.0/Concurrent/Channel/Selector/PutClause.html b/docs/1.1.1/Concurrent/Channel/Selector/PutClause.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Selector/PutClause.html rename to docs/1.1.1/Concurrent/Channel/Selector/PutClause.html diff --git a/docs/1.1.0/Concurrent/Channel/Selector/TakeClause.html b/docs/1.1.1/Concurrent/Channel/Selector/TakeClause.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Selector/TakeClause.html rename to docs/1.1.1/Concurrent/Channel/Selector/TakeClause.html diff --git a/docs/1.1.0/Concurrent/Channel/Tick.html b/docs/1.1.1/Concurrent/Channel/Tick.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/Tick.html rename to docs/1.1.1/Concurrent/Channel/Tick.html diff --git a/docs/1.1.0/Concurrent/Channel/ValidationError.html b/docs/1.1.1/Concurrent/Channel/ValidationError.html similarity index 100% rename from docs/1.1.0/Concurrent/Channel/ValidationError.html rename to docs/1.1.1/Concurrent/Channel/ValidationError.html diff --git a/docs/1.1.0/Concurrent/Collection/CopyOnNotifyObserverSet.html b/docs/1.1.1/Concurrent/Collection/CopyOnNotifyObserverSet.html similarity index 100% rename from docs/1.1.0/Concurrent/Collection/CopyOnNotifyObserverSet.html rename to docs/1.1.1/Concurrent/Collection/CopyOnNotifyObserverSet.html diff --git a/docs/1.1.0/Concurrent/Collection/CopyOnWriteObserverSet.html b/docs/1.1.1/Concurrent/Collection/CopyOnWriteObserverSet.html similarity index 100% rename from docs/1.1.0/Concurrent/Collection/CopyOnWriteObserverSet.html rename to docs/1.1.1/Concurrent/Collection/CopyOnWriteObserverSet.html diff --git a/docs/1.1.0/Concurrent/Concern.html b/docs/1.1.1/Concurrent/Concern.html similarity index 100% rename from docs/1.1.0/Concurrent/Concern.html rename to docs/1.1.1/Concurrent/Concern.html diff --git a/docs/1.1.0/Concurrent/Concern/Dereferenceable.html b/docs/1.1.1/Concurrent/Concern/Dereferenceable.html similarity index 100% rename from docs/1.1.0/Concurrent/Concern/Dereferenceable.html rename to docs/1.1.1/Concurrent/Concern/Dereferenceable.html diff --git a/docs/1.1.0/Concurrent/Concern/Obligation.html b/docs/1.1.1/Concurrent/Concern/Obligation.html similarity index 100% rename from docs/1.1.0/Concurrent/Concern/Obligation.html rename to docs/1.1.1/Concurrent/Concern/Obligation.html diff --git a/docs/1.1.0/Concurrent/Concern/Observable.html b/docs/1.1.1/Concurrent/Concern/Observable.html similarity index 100% rename from docs/1.1.0/Concurrent/Concern/Observable.html rename to docs/1.1.1/Concurrent/Concern/Observable.html diff --git a/docs/1.1.0/Concurrent/ConcurrentUpdateError.html b/docs/1.1.1/Concurrent/ConcurrentUpdateError.html similarity index 100% rename from docs/1.1.0/Concurrent/ConcurrentUpdateError.html rename to docs/1.1.1/Concurrent/ConcurrentUpdateError.html diff --git a/docs/1.1.0/Concurrent/CountDownLatch.html b/docs/1.1.1/Concurrent/CountDownLatch.html similarity index 100% rename from docs/1.1.0/Concurrent/CountDownLatch.html rename to docs/1.1.1/Concurrent/CountDownLatch.html diff --git a/docs/1.1.0/Concurrent/CyclicBarrier.html b/docs/1.1.1/Concurrent/CyclicBarrier.html similarity index 100% rename from docs/1.1.0/Concurrent/CyclicBarrier.html rename to docs/1.1.1/Concurrent/CyclicBarrier.html diff --git a/docs/1.1.0/Concurrent/Delay.html b/docs/1.1.1/Concurrent/Delay.html similarity index 100% rename from docs/1.1.0/Concurrent/Delay.html rename to docs/1.1.1/Concurrent/Delay.html diff --git a/docs/1.1.0/Concurrent/Edge.html b/docs/1.1.1/Concurrent/Edge.html similarity index 100% rename from docs/1.1.0/Concurrent/Edge.html rename to docs/1.1.1/Concurrent/Edge.html diff --git a/docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet.html b/docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet.html similarity index 100% rename from docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet.html rename to docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet.html diff --git a/docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet/Head.html b/docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet/Head.html similarity index 100% rename from docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet/Head.html rename to docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet/Head.html diff --git a/docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet/Node.html b/docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet/Node.html similarity index 100% rename from docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet/Node.html rename to docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet/Node.html diff --git a/docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet/Tail.html b/docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet/Tail.html similarity index 100% rename from docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet/Tail.html rename to docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet/Tail.html diff --git a/docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet/Window.html b/docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet/Window.html similarity index 100% rename from docs/1.1.0/Concurrent/Edge/LockFreeLinkedSet/Window.html rename to docs/1.1.1/Concurrent/Edge/LockFreeLinkedSet/Window.html diff --git a/docs/1.1.0/Concurrent/Event.html b/docs/1.1.1/Concurrent/Event.html similarity index 100% rename from docs/1.1.0/Concurrent/Event.html rename to docs/1.1.1/Concurrent/Event.html diff --git a/docs/1.1.0/Concurrent/Exchanger.html b/docs/1.1.1/Concurrent/Exchanger.html similarity index 100% rename from docs/1.1.0/Concurrent/Exchanger.html rename to docs/1.1.1/Concurrent/Exchanger.html diff --git a/docs/1.1.0/Concurrent/FixedThreadPool.html b/docs/1.1.1/Concurrent/FixedThreadPool.html similarity index 100% rename from docs/1.1.0/Concurrent/FixedThreadPool.html rename to docs/1.1.1/Concurrent/FixedThreadPool.html diff --git a/docs/1.1.0/Concurrent/Future.html b/docs/1.1.1/Concurrent/Future.html similarity index 100% rename from docs/1.1.0/Concurrent/Future.html rename to docs/1.1.1/Concurrent/Future.html diff --git a/docs/1.1.0/Concurrent/Hash.html b/docs/1.1.1/Concurrent/Hash.html similarity index 100% rename from docs/1.1.0/Concurrent/Hash.html rename to docs/1.1.1/Concurrent/Hash.html diff --git a/docs/1.1.0/Concurrent/IVar.html b/docs/1.1.1/Concurrent/IVar.html similarity index 100% rename from docs/1.1.0/Concurrent/IVar.html rename to docs/1.1.1/Concurrent/IVar.html diff --git a/docs/1.1.0/Concurrent/ImmediateExecutor.html b/docs/1.1.1/Concurrent/ImmediateExecutor.html similarity index 100% rename from docs/1.1.0/Concurrent/ImmediateExecutor.html rename to docs/1.1.1/Concurrent/ImmediateExecutor.html diff --git a/docs/1.1.0/Concurrent/ImmutableStruct.html b/docs/1.1.1/Concurrent/ImmutableStruct.html similarity index 100% rename from docs/1.1.0/Concurrent/ImmutableStruct.html rename to docs/1.1.1/Concurrent/ImmutableStruct.html diff --git a/docs/1.1.0/Concurrent/IndirectImmediateExecutor.html b/docs/1.1.1/Concurrent/IndirectImmediateExecutor.html similarity index 100% rename from docs/1.1.0/Concurrent/IndirectImmediateExecutor.html rename to docs/1.1.1/Concurrent/IndirectImmediateExecutor.html diff --git a/docs/1.1.0/Concurrent/LazyRegister.html b/docs/1.1.1/Concurrent/LazyRegister.html similarity index 100% rename from docs/1.1.0/Concurrent/LazyRegister.html rename to docs/1.1.1/Concurrent/LazyRegister.html diff --git a/docs/1.1.0/Concurrent/LockFreeQueue/Node.html b/docs/1.1.1/Concurrent/LockFreeQueue/Node.html similarity index 100% rename from docs/1.1.0/Concurrent/LockFreeQueue/Node.html rename to docs/1.1.1/Concurrent/LockFreeQueue/Node.html diff --git a/docs/1.1.0/Concurrent/LockFreeStack.html b/docs/1.1.1/Concurrent/LockFreeStack.html similarity index 100% rename from docs/1.1.0/Concurrent/LockFreeStack.html rename to docs/1.1.1/Concurrent/LockFreeStack.html diff --git a/docs/1.1.0/Concurrent/LockFreeStack/Node.html b/docs/1.1.1/Concurrent/LockFreeStack/Node.html similarity index 100% rename from docs/1.1.0/Concurrent/LockFreeStack/Node.html rename to docs/1.1.1/Concurrent/LockFreeStack/Node.html diff --git a/docs/1.1.0/Concurrent/MVar.html b/docs/1.1.1/Concurrent/MVar.html similarity index 100% rename from docs/1.1.0/Concurrent/MVar.html rename to docs/1.1.1/Concurrent/MVar.html diff --git a/docs/1.1.0/Concurrent/Map.html b/docs/1.1.1/Concurrent/Map.html similarity index 100% rename from docs/1.1.0/Concurrent/Map.html rename to docs/1.1.1/Concurrent/Map.html diff --git a/docs/1.1.0/Concurrent/Maybe.html b/docs/1.1.1/Concurrent/Maybe.html similarity index 100% rename from docs/1.1.0/Concurrent/Maybe.html rename to docs/1.1.1/Concurrent/Maybe.html diff --git a/docs/1.1.0/Concurrent/MultipleAssignmentError.html b/docs/1.1.1/Concurrent/MultipleAssignmentError.html similarity index 100% rename from docs/1.1.0/Concurrent/MultipleAssignmentError.html rename to docs/1.1.1/Concurrent/MultipleAssignmentError.html diff --git a/docs/1.1.0/Concurrent/MultipleErrors.html b/docs/1.1.1/Concurrent/MultipleErrors.html similarity index 100% rename from docs/1.1.0/Concurrent/MultipleErrors.html rename to docs/1.1.1/Concurrent/MultipleErrors.html diff --git a/docs/1.1.0/Concurrent/MutableStruct.html b/docs/1.1.1/Concurrent/MutableStruct.html similarity index 100% rename from docs/1.1.0/Concurrent/MutableStruct.html rename to docs/1.1.1/Concurrent/MutableStruct.html diff --git a/docs/1.1.0/Concurrent/ProcessingActor.html b/docs/1.1.1/Concurrent/ProcessingActor.html similarity index 100% rename from docs/1.1.0/Concurrent/ProcessingActor.html rename to docs/1.1.1/Concurrent/ProcessingActor.html diff --git a/docs/1.1.0/Concurrent/Promise.html b/docs/1.1.1/Concurrent/Promise.html similarity index 100% rename from docs/1.1.0/Concurrent/Promise.html rename to docs/1.1.1/Concurrent/Promise.html diff --git a/docs/1.1.0/Concurrent/Promises.html b/docs/1.1.1/Concurrent/Promises.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises.html rename to docs/1.1.1/Concurrent/Promises.html diff --git a/docs/1.1.0/Concurrent/Promises/AbstractEventFuture.html b/docs/1.1.1/Concurrent/Promises/AbstractEventFuture.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/AbstractEventFuture.html rename to docs/1.1.1/Concurrent/Promises/AbstractEventFuture.html diff --git a/docs/1.1.0/Concurrent/Promises/AbstractEventFuture/ThrottleIntegration.html b/docs/1.1.1/Concurrent/Promises/AbstractEventFuture/ThrottleIntegration.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/AbstractEventFuture/ThrottleIntegration.html rename to docs/1.1.1/Concurrent/Promises/AbstractEventFuture/ThrottleIntegration.html diff --git a/docs/1.1.0/Concurrent/Promises/Channel.html b/docs/1.1.1/Concurrent/Promises/Channel.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/Channel.html rename to docs/1.1.1/Concurrent/Promises/Channel.html diff --git a/docs/1.1.0/Concurrent/Promises/Event.html b/docs/1.1.1/Concurrent/Promises/Event.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/Event.html rename to docs/1.1.1/Concurrent/Promises/Event.html diff --git a/docs/1.1.0/Concurrent/Promises/FactoryMethods.html b/docs/1.1.1/Concurrent/Promises/FactoryMethods.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/FactoryMethods.html rename to docs/1.1.1/Concurrent/Promises/FactoryMethods.html diff --git a/docs/1.1.0/Concurrent/Promises/FactoryMethods/Configuration.html b/docs/1.1.1/Concurrent/Promises/FactoryMethods/Configuration.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/FactoryMethods/Configuration.html rename to docs/1.1.1/Concurrent/Promises/FactoryMethods/Configuration.html diff --git a/docs/1.1.0/Concurrent/Promises/FactoryMethods/NewChannelIntegration.html b/docs/1.1.1/Concurrent/Promises/FactoryMethods/NewChannelIntegration.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/FactoryMethods/NewChannelIntegration.html rename to docs/1.1.1/Concurrent/Promises/FactoryMethods/NewChannelIntegration.html diff --git a/docs/1.1.0/Concurrent/Promises/Future.html b/docs/1.1.1/Concurrent/Promises/Future.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/Future.html rename to docs/1.1.1/Concurrent/Promises/Future.html diff --git a/docs/1.1.0/Concurrent/Promises/Future/ActorIntegration.html b/docs/1.1.1/Concurrent/Promises/Future/ActorIntegration.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/Future/ActorIntegration.html rename to docs/1.1.1/Concurrent/Promises/Future/ActorIntegration.html diff --git a/docs/1.1.0/Concurrent/Promises/Future/FlatShortcuts.html b/docs/1.1.1/Concurrent/Promises/Future/FlatShortcuts.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/Future/FlatShortcuts.html rename to docs/1.1.1/Concurrent/Promises/Future/FlatShortcuts.html diff --git a/docs/1.1.0/Concurrent/Promises/Future/NewChannelIntegration.html b/docs/1.1.1/Concurrent/Promises/Future/NewChannelIntegration.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/Future/NewChannelIntegration.html rename to docs/1.1.1/Concurrent/Promises/Future/NewChannelIntegration.html diff --git a/docs/1.1.0/Concurrent/Promises/Future/ThrottleIntegration.html b/docs/1.1.1/Concurrent/Promises/Future/ThrottleIntegration.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/Future/ThrottleIntegration.html rename to docs/1.1.1/Concurrent/Promises/Future/ThrottleIntegration.html diff --git a/docs/1.1.0/Concurrent/Promises/Resolvable.html b/docs/1.1.1/Concurrent/Promises/Resolvable.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/Resolvable.html rename to docs/1.1.1/Concurrent/Promises/Resolvable.html diff --git a/docs/1.1.0/Concurrent/Promises/ResolvableEvent.html b/docs/1.1.1/Concurrent/Promises/ResolvableEvent.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/ResolvableEvent.html rename to docs/1.1.1/Concurrent/Promises/ResolvableEvent.html diff --git a/docs/1.1.0/Concurrent/Promises/ResolvableFuture.html b/docs/1.1.1/Concurrent/Promises/ResolvableFuture.html similarity index 100% rename from docs/1.1.0/Concurrent/Promises/ResolvableFuture.html rename to docs/1.1.1/Concurrent/Promises/ResolvableFuture.html diff --git a/docs/1.1.0/Concurrent/ReInclude.html b/docs/1.1.1/Concurrent/ReInclude.html similarity index 100% rename from docs/1.1.0/Concurrent/ReInclude.html rename to docs/1.1.1/Concurrent/ReInclude.html diff --git a/docs/1.1.0/Concurrent/ReadWriteLock.html b/docs/1.1.1/Concurrent/ReadWriteLock.html similarity index 100% rename from docs/1.1.0/Concurrent/ReadWriteLock.html rename to docs/1.1.1/Concurrent/ReadWriteLock.html diff --git a/docs/1.1.0/Concurrent/ReentrantReadWriteLock.html b/docs/1.1.1/Concurrent/ReentrantReadWriteLock.html similarity index 100% rename from docs/1.1.0/Concurrent/ReentrantReadWriteLock.html rename to docs/1.1.1/Concurrent/ReentrantReadWriteLock.html diff --git a/docs/1.1.0/Concurrent/SafeTaskExecutor.html b/docs/1.1.1/Concurrent/SafeTaskExecutor.html similarity index 100% rename from docs/1.1.0/Concurrent/SafeTaskExecutor.html rename to docs/1.1.1/Concurrent/SafeTaskExecutor.html diff --git a/docs/1.1.0/Concurrent/ScheduledTask.html b/docs/1.1.1/Concurrent/ScheduledTask.html similarity index 100% rename from docs/1.1.0/Concurrent/ScheduledTask.html rename to docs/1.1.1/Concurrent/ScheduledTask.html diff --git a/docs/1.1.0/Concurrent/Semaphore.html b/docs/1.1.1/Concurrent/Semaphore.html similarity index 100% rename from docs/1.1.0/Concurrent/Semaphore.html rename to docs/1.1.1/Concurrent/Semaphore.html diff --git a/docs/1.1.0/Concurrent/SerializedExecution.html b/docs/1.1.1/Concurrent/SerializedExecution.html similarity index 100% rename from docs/1.1.0/Concurrent/SerializedExecution.html rename to docs/1.1.1/Concurrent/SerializedExecution.html diff --git a/docs/1.1.0/Concurrent/SerializedExecution/Job.html b/docs/1.1.1/Concurrent/SerializedExecution/Job.html similarity index 100% rename from docs/1.1.0/Concurrent/SerializedExecution/Job.html rename to docs/1.1.1/Concurrent/SerializedExecution/Job.html diff --git a/docs/1.1.0/Concurrent/SerializedExecutionDelegator.html b/docs/1.1.1/Concurrent/SerializedExecutionDelegator.html similarity index 100% rename from docs/1.1.0/Concurrent/SerializedExecutionDelegator.html rename to docs/1.1.1/Concurrent/SerializedExecutionDelegator.html diff --git a/docs/1.1.0/Concurrent/Set.html b/docs/1.1.1/Concurrent/Set.html similarity index 100% rename from docs/1.1.0/Concurrent/Set.html rename to docs/1.1.1/Concurrent/Set.html diff --git a/docs/1.1.0/Concurrent/SettableStruct.html b/docs/1.1.1/Concurrent/SettableStruct.html similarity index 100% rename from docs/1.1.0/Concurrent/SettableStruct.html rename to docs/1.1.1/Concurrent/SettableStruct.html diff --git a/docs/1.1.0/Concurrent/SimpleExecutorService.html b/docs/1.1.1/Concurrent/SimpleExecutorService.html similarity index 100% rename from docs/1.1.0/Concurrent/SimpleExecutorService.html rename to docs/1.1.1/Concurrent/SimpleExecutorService.html diff --git a/docs/1.1.0/Concurrent/SingleThreadExecutor.html b/docs/1.1.1/Concurrent/SingleThreadExecutor.html similarity index 100% rename from docs/1.1.0/Concurrent/SingleThreadExecutor.html rename to docs/1.1.1/Concurrent/SingleThreadExecutor.html diff --git a/docs/1.1.0/Concurrent/Synchronization.html b/docs/1.1.1/Concurrent/Synchronization.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization.html rename to docs/1.1.1/Concurrent/Synchronization.html diff --git a/docs/1.1.0/Concurrent/Synchronization/Condition.html b/docs/1.1.1/Concurrent/Synchronization/Condition.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/Condition.html rename to docs/1.1.1/Concurrent/Synchronization/Condition.html diff --git a/docs/1.1.0/Concurrent/Synchronization/JRubyAttrVolatile.html b/docs/1.1.1/Concurrent/Synchronization/JRubyAttrVolatile.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/JRubyAttrVolatile.html rename to docs/1.1.1/Concurrent/Synchronization/JRubyAttrVolatile.html diff --git a/docs/1.1.0/Concurrent/Synchronization/JRubyAttrVolatile/ClassMethods.html b/docs/1.1.1/Concurrent/Synchronization/JRubyAttrVolatile/ClassMethods.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/JRubyAttrVolatile/ClassMethods.html rename to docs/1.1.1/Concurrent/Synchronization/JRubyAttrVolatile/ClassMethods.html diff --git a/docs/1.1.0/Concurrent/Synchronization/Lock.html b/docs/1.1.1/Concurrent/Synchronization/Lock.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/Lock.html rename to docs/1.1.1/Concurrent/Synchronization/Lock.html diff --git a/docs/1.1.0/Concurrent/Synchronization/MriAttrVolatile.html b/docs/1.1.1/Concurrent/Synchronization/MriAttrVolatile.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/MriAttrVolatile.html rename to docs/1.1.1/Concurrent/Synchronization/MriAttrVolatile.html diff --git a/docs/1.1.0/Concurrent/Synchronization/MriAttrVolatile/ClassMethods.html b/docs/1.1.1/Concurrent/Synchronization/MriAttrVolatile/ClassMethods.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/MriAttrVolatile/ClassMethods.html rename to docs/1.1.1/Concurrent/Synchronization/MriAttrVolatile/ClassMethods.html diff --git a/docs/1.1.0/Concurrent/Synchronization/Object.html b/docs/1.1.1/Concurrent/Synchronization/Object.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/Object.html rename to docs/1.1.1/Concurrent/Synchronization/Object.html diff --git a/docs/1.1.0/Concurrent/Synchronization/RbxAttrVolatile.html b/docs/1.1.1/Concurrent/Synchronization/RbxAttrVolatile.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/RbxAttrVolatile.html rename to docs/1.1.1/Concurrent/Synchronization/RbxAttrVolatile.html diff --git a/docs/1.1.0/Concurrent/Synchronization/RbxAttrVolatile/ClassMethods.html b/docs/1.1.1/Concurrent/Synchronization/RbxAttrVolatile/ClassMethods.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/RbxAttrVolatile/ClassMethods.html rename to docs/1.1.1/Concurrent/Synchronization/RbxAttrVolatile/ClassMethods.html diff --git a/docs/1.1.0/Concurrent/Synchronization/TruffleRubyAttrVolatile.html b/docs/1.1.1/Concurrent/Synchronization/TruffleRubyAttrVolatile.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/TruffleRubyAttrVolatile.html rename to docs/1.1.1/Concurrent/Synchronization/TruffleRubyAttrVolatile.html diff --git a/docs/1.1.0/Concurrent/Synchronization/TruffleRubyAttrVolatile/ClassMethods.html b/docs/1.1.1/Concurrent/Synchronization/TruffleRubyAttrVolatile/ClassMethods.html similarity index 100% rename from docs/1.1.0/Concurrent/Synchronization/TruffleRubyAttrVolatile/ClassMethods.html rename to docs/1.1.1/Concurrent/Synchronization/TruffleRubyAttrVolatile/ClassMethods.html diff --git a/docs/1.1.0/Concurrent/TVar.html b/docs/1.1.1/Concurrent/TVar.html similarity index 100% rename from docs/1.1.0/Concurrent/TVar.html rename to docs/1.1.1/Concurrent/TVar.html diff --git a/docs/1.1.0/Concurrent/ThreadLocalVar.html b/docs/1.1.1/Concurrent/ThreadLocalVar.html similarity index 100% rename from docs/1.1.0/Concurrent/ThreadLocalVar.html rename to docs/1.1.1/Concurrent/ThreadLocalVar.html diff --git a/docs/1.1.0/Concurrent/ThreadPoolExecutor.html b/docs/1.1.1/Concurrent/ThreadPoolExecutor.html similarity index 100% rename from docs/1.1.0/Concurrent/ThreadPoolExecutor.html rename to docs/1.1.1/Concurrent/ThreadPoolExecutor.html diff --git a/docs/1.1.0/Concurrent/ThreadSafe/Util/XorShiftRandom.html b/docs/1.1.1/Concurrent/ThreadSafe/Util/XorShiftRandom.html similarity index 100% rename from docs/1.1.0/Concurrent/ThreadSafe/Util/XorShiftRandom.html rename to docs/1.1.1/Concurrent/ThreadSafe/Util/XorShiftRandom.html diff --git a/docs/1.1.0/Concurrent/Throttle.html b/docs/1.1.1/Concurrent/Throttle.html similarity index 100% rename from docs/1.1.0/Concurrent/Throttle.html rename to docs/1.1.1/Concurrent/Throttle.html diff --git a/docs/1.1.0/Concurrent/Throttle/PromisesIntegration.html b/docs/1.1.1/Concurrent/Throttle/PromisesIntegration.html similarity index 100% rename from docs/1.1.0/Concurrent/Throttle/PromisesIntegration.html rename to docs/1.1.1/Concurrent/Throttle/PromisesIntegration.html diff --git a/docs/1.1.0/Concurrent/TimerSet.html b/docs/1.1.1/Concurrent/TimerSet.html similarity index 100% rename from docs/1.1.0/Concurrent/TimerSet.html rename to docs/1.1.1/Concurrent/TimerSet.html diff --git a/docs/1.1.0/Concurrent/TimerTask.html b/docs/1.1.1/Concurrent/TimerTask.html similarity index 100% rename from docs/1.1.0/Concurrent/TimerTask.html rename to docs/1.1.1/Concurrent/TimerTask.html diff --git a/docs/1.1.0/Concurrent/Transaction.html b/docs/1.1.1/Concurrent/Transaction.html similarity index 100% rename from docs/1.1.0/Concurrent/Transaction.html rename to docs/1.1.1/Concurrent/Transaction.html diff --git a/docs/1.1.0/Concurrent/Transaction/ReadLogEntry.html b/docs/1.1.1/Concurrent/Transaction/ReadLogEntry.html similarity index 100% rename from docs/1.1.0/Concurrent/Transaction/ReadLogEntry.html rename to docs/1.1.1/Concurrent/Transaction/ReadLogEntry.html diff --git a/docs/1.1.0/Concurrent/Tuple.html b/docs/1.1.1/Concurrent/Tuple.html similarity index 100% rename from docs/1.1.0/Concurrent/Tuple.html rename to docs/1.1.1/Concurrent/Tuple.html diff --git a/docs/1.1.0/Concurrent/Utility.html b/docs/1.1.1/Concurrent/Utility.html similarity index 100% rename from docs/1.1.0/Concurrent/Utility.html rename to docs/1.1.1/Concurrent/Utility.html diff --git a/docs/1.1.0/_index.html b/docs/1.1.1/_index.html similarity index 100% rename from docs/1.1.0/_index.html rename to docs/1.1.1/_index.html diff --git a/docs/1.1.0/class_list.html b/docs/1.1.1/class_list.html similarity index 100% rename from docs/1.1.0/class_list.html rename to docs/1.1.1/class_list.html diff --git a/docs/1.1.0/css/common.css b/docs/1.1.1/css/common.css similarity index 100% rename from docs/1.1.0/css/common.css rename to docs/1.1.1/css/common.css diff --git a/docs/1.1.0/css/full_list.css b/docs/1.1.1/css/full_list.css similarity index 100% rename from docs/1.1.0/css/full_list.css rename to docs/1.1.1/css/full_list.css diff --git a/docs/1.1.0/css/style.css b/docs/1.1.1/css/style.css similarity index 100% rename from docs/1.1.0/css/style.css rename to docs/1.1.1/css/style.css diff --git a/docs/1.1.0/file.CHANGELOG.html b/docs/1.1.1/file.CHANGELOG.html similarity index 99% rename from docs/1.1.0/file.CHANGELOG.html rename to docs/1.1.1/file.CHANGELOG.html index fb9d95e4d..a22adaa5a 100644 --- a/docs/1.1.0/file.CHANGELOG.html +++ b/docs/1.1.1/file.CHANGELOG.html @@ -59,6 +59,18 @@

Current

+

Release v1.1.1, edge v0.4.1 (1 Nov 2018)

+ +
    +
  • (#768) add support for 1.9.3 back
  • +
+ +

Release v1.1.0, edge v0.4.0 (31 OCt 2018) (yanked)

+ +
    +
  • (#768) yanked because of issues with removed 1.9.3 support
  • +
+

Release v1.1.0.pre2, edge v0.4.0.pre2 (18 Sep 2018)

concurrent-ruby:

@@ -80,6 +92,7 @@

Release v1.1.0.pre1, edge v0.4.0.pre1 (15 Aug 2018)

concurrent-ruby:

    +
  • requires at least Ruby 2.0
  • Promises are moved from concurrent-ruby-edge to concurrent-ruby
  • Add support for TruffleRuby diff --git a/docs/1.1.0/file.LICENSE.html b/docs/1.1.1/file.LICENSE.html similarity index 100% rename from docs/1.1.0/file.LICENSE.html rename to docs/1.1.1/file.LICENSE.html diff --git a/docs/1.1.0/file.README.html b/docs/1.1.1/file.README.html similarity index 98% rename from docs/1.1.0/file.README.html rename to docs/1.1.1/file.README.html index 80ad64749..73f5ffe0c 100644 --- a/docs/1.1.0/file.README.html +++ b/docs/1.1.1/file.README.html @@ -313,8 +313,14 @@

    Edge Features

    Supported Ruby versions

    -

    MRI 2.0 and above, JRuby 9000, TruffleRuby are supported. -This gem should be fully compatible with any interpreter that is compliant with Ruby 2.0 or newer. +

      +
    • MRI 2.0 and above
    • +
    • JRuby 9000
    • +
    • TruffleRuby are supported.
    • +
    • Any Ruby interpreter that is compliant with Ruby 2.0 or newer.
    • +
    + +

    Actually we still support mri 1.9.3 and jruby 1.7.27 but we are looking at ways how to drop the support. Java 8 is preferred for JRuby but every Java version on which JRuby 9000 runs is supported.

    The legacy support for Rubinius is kept but it is no longer maintained, if you would like to help diff --git a/docs/1.1.0/file.promises.out.html b/docs/1.1.1/file.promises.out.html similarity index 100% rename from docs/1.1.0/file.promises.out.html rename to docs/1.1.1/file.promises.out.html diff --git a/docs/1.1.0/file.thread_pools.html b/docs/1.1.1/file.thread_pools.html similarity index 100% rename from docs/1.1.0/file.thread_pools.html rename to docs/1.1.1/file.thread_pools.html diff --git a/docs/1.1.0/file_list.html b/docs/1.1.1/file_list.html similarity index 100% rename from docs/1.1.0/file_list.html rename to docs/1.1.1/file_list.html diff --git a/docs/1.1.0/frames.html b/docs/1.1.1/frames.html similarity index 100% rename from docs/1.1.0/frames.html rename to docs/1.1.1/frames.html diff --git a/docs/1.1.0/index.html b/docs/1.1.1/index.html similarity index 98% rename from docs/1.1.0/index.html rename to docs/1.1.1/index.html index 6729a0c6b..880194553 100644 --- a/docs/1.1.0/index.html +++ b/docs/1.1.1/index.html @@ -313,8 +313,14 @@

    Edge Features

    Supported Ruby versions

    -

    MRI 2.0 and above, JRuby 9000, TruffleRuby are supported. -This gem should be fully compatible with any interpreter that is compliant with Ruby 2.0 or newer. +

      +
    • MRI 2.0 and above
    • +
    • JRuby 9000
    • +
    • TruffleRuby are supported.
    • +
    • Any Ruby interpreter that is compliant with Ruby 2.0 or newer.
    • +
    + +

    Actually we still support mri 1.9.3 and jruby 1.7.27 but we are looking at ways how to drop the support. Java 8 is preferred for JRuby but every Java version on which JRuby 9000 runs is supported.

    The legacy support for Rubinius is kept but it is no longer maintained, if you would like to help diff --git a/docs/1.1.0/js/app.js b/docs/1.1.1/js/app.js similarity index 100% rename from docs/1.1.0/js/app.js rename to docs/1.1.1/js/app.js diff --git a/docs/1.1.0/js/full_list.js b/docs/1.1.1/js/full_list.js similarity index 100% rename from docs/1.1.0/js/full_list.js rename to docs/1.1.1/js/full_list.js diff --git a/docs/1.1.0/js/jquery.js b/docs/1.1.1/js/jquery.js similarity index 100% rename from docs/1.1.0/js/jquery.js rename to docs/1.1.1/js/jquery.js diff --git a/docs/1.1.0/method_list.html b/docs/1.1.1/method_list.html similarity index 100% rename from docs/1.1.0/method_list.html rename to docs/1.1.1/method_list.html diff --git a/docs/1.1.0/top-level-namespace.html b/docs/1.1.1/top-level-namespace.html similarity index 100% rename from docs/1.1.0/top-level-namespace.html rename to docs/1.1.1/top-level-namespace.html diff --git a/docs/master/Concurrent.html b/docs/master/Concurrent.html index df10f3816..be65511ca 100644 --- a/docs/master/Concurrent.html +++ b/docs/master/Concurrent.html @@ -343,8 +343,14 @@

    Edge Features

    Supported Ruby versions

    -

    MRI 2.0 and above, JRuby 9000, TruffleRuby are supported. -This gem should be fully compatible with any interpreter that is compliant with Ruby 2.0 or newer. +

      +
    • MRI 2.0 and above
    • +
    • JRuby 9000
    • +
    • TruffleRuby are supported.
    • +
    • Any Ruby interpreter that is compliant with Ruby 2.0 or newer.
    • +
    + +

    Actually we still support mri 1.9.3 and jruby 1.7.27 but we are looking at ways how to drop the support. Java 8 is preferred for JRuby but every Java version on which JRuby 9000 runs is supported.

    The legacy support for Rubinius is kept but it is no longer maintained, if you would like to help @@ -653,12 +659,12 @@

    VERSION =
    -
    '1.1.0'
    +
    '1.1.1'
    EDGE_VERSION =
    -
    '0.4.0'
    +
    '0.4.1'
    NULL_LOGGER =
    diff --git a/docs/master/file.CHANGELOG.html b/docs/master/file.CHANGELOG.html index fb9d95e4d..a22adaa5a 100644 --- a/docs/master/file.CHANGELOG.html +++ b/docs/master/file.CHANGELOG.html @@ -59,6 +59,18 @@

    Current

    +

    Release v1.1.1, edge v0.4.1 (1 Nov 2018)

    + +
      +
    • (#768) add support for 1.9.3 back
    • +
    + +

    Release v1.1.0, edge v0.4.0 (31 OCt 2018) (yanked)

    + +
      +
    • (#768) yanked because of issues with removed 1.9.3 support
    • +
    +

    Release v1.1.0.pre2, edge v0.4.0.pre2 (18 Sep 2018)

    concurrent-ruby:

    @@ -80,6 +92,7 @@

    Release v1.1.0.pre1, edge v0.4.0.pre1 (15 Aug 2018)

    concurrent-ruby:

      +
    • requires at least Ruby 2.0
    • Promises are moved from concurrent-ruby-edge to concurrent-ruby
    • Add support for TruffleRuby diff --git a/docs/master/file.README.html b/docs/master/file.README.html index 80ad64749..73f5ffe0c 100644 --- a/docs/master/file.README.html +++ b/docs/master/file.README.html @@ -313,8 +313,14 @@

      Edge Features

      Supported Ruby versions

      -

      MRI 2.0 and above, JRuby 9000, TruffleRuby are supported. -This gem should be fully compatible with any interpreter that is compliant with Ruby 2.0 or newer. +

        +
      • MRI 2.0 and above
      • +
      • JRuby 9000
      • +
      • TruffleRuby are supported.
      • +
      • Any Ruby interpreter that is compliant with Ruby 2.0 or newer.
      • +
      + +

      Actually we still support mri 1.9.3 and jruby 1.7.27 but we are looking at ways how to drop the support. Java 8 is preferred for JRuby but every Java version on which JRuby 9000 runs is supported.

      The legacy support for Rubinius is kept but it is no longer maintained, if you would like to help diff --git a/docs/master/file.promises.out.html b/docs/master/file.promises.out.html index e9bc0b30c..a4a4d121d 100644 --- a/docs/master/file.promises.out.html +++ b/docs/master/file.promises.out.html @@ -735,10 +735,10 @@

      ProcessingActor

      end end add_2_messages.tell 1 -# => #<Concurrent::Promises::Future:0x000025 pending> +# => #<Concurrent::Promises::Future:0x000015 pending> add_2_messages.termination.resolved? # => false add_2_messages.tell 3 -# => #<Concurrent::Promises::Future:0x000026 pending> +# => #<Concurrent::Promises::Future:0x000025 pending> add_2_messages.termination.value! # => 4 @@ -762,7 +762,7 @@

      ProcessingActor

      Concurrent::Promises::Channel.new(2), 0, &slow_counter) -# => #<Concurrent::ProcessingActor:0x000027 ... termination:pending> +# => #<Concurrent::ProcessingActor:0x000026 ... termination:pending>

      Now we can create a producer which will push messages only when there is a @@ -784,7 +784,7 @@

      ProcessingActor

      end Concurrent::Promises.future(actor, 0, &produce).run.wait! -# => #<Concurrent::Promises::Future:0x00002a fulfilled> +# => #<Concurrent::Promises::Future:0x000029 fulfilled> actor.termination.value! # => 45 @@ -794,16 +794,16 @@

      Use-cases

      Simple background processing

      Concurrent::Promises.future { do_stuff }
      -# => #<Concurrent::Promises::Future:0x00002b pending>
      +# => #<Concurrent::Promises::Future:0x00002a pending>
       

      Parallel background processing

      tasks = 4.times.map { |i| Concurrent::Promises.future(i) { |i| i*2 } }
      -# => [#<Concurrent::Promises::Future:0x00002c pending>,
      +# => [#<Concurrent::Promises::Future:0x00002b pending>,
      +#     #<Concurrent::Promises::Future:0x00002c pending>,
       #     #<Concurrent::Promises::Future:0x00002d pending>,
      -#     #<Concurrent::Promises::Future:0x00002e pending>,
      -#     #<Concurrent::Promises::Future:0x00002f pending>]
      +#     #<Concurrent::Promises::Future:0x00002e pending>]
       Concurrent::Promises.zip(*tasks).value!
       # => [0, 2, 4, 6]
       
      @@ -855,11 +855,11 @@

      Actor background processing

      Create the computer actor and send it 3 jobs.

      computer = Concurrent::Actor.spawn Computer, :computer
      -# => #<Concurrent::Actor::Reference:0x000030 /computer (Computer)>
      +# => #<Concurrent::Actor::Reference:0x00002f /computer (Computer)>
       results = 3.times.map { computer.ask [:run, -> { sleep 0.1; :result }] }
      -# => [#<Concurrent::Promises::Future:0x000031 pending>,
      -#     #<Concurrent::Promises::Future:0x000032 pending>,
      -#     #<Concurrent::Promises::Future:0x000033 pending>]
      +# => [#<Concurrent::Promises::Future:0x000030 pending>,
      +#     #<Concurrent::Promises::Future:0x000031 pending>,
      +#     #<Concurrent::Promises::Future:0x000032 pending>]
       computer.ask(:status).value!             # => {:running_jobs=>3}
       results.map(&:value!)                    # => [:result, :result, :result]
       
      @@ -907,8 +907,8 @@

      Simple

      Lets have two processes which will count until cancelled.

      source, token = Concurrent::Cancellation.create
      -# => [#<Concurrent::Cancellation:0x000034 canceled:false>,
      -#     #<Concurrent::Cancellation::Token:0x000035 canceled:false>]
      +# => [#<Concurrent::Cancellation:0x000033 canceled:false>,
      +#     #<Concurrent::Cancellation::Token:0x000034 canceled:false>]
       
       count_until_cancelled = -> token, count do
         if token.canceled?
      @@ -921,8 +921,8 @@ 

      Simple

      futures = Array.new(2) do Concurrent::Promises.future(token, 0, &count_until_cancelled).run end -# => [#<Concurrent::Promises::Future:0x000036 pending>, -# #<Concurrent::Promises::Future:0x000037 pending>] +# => [#<Concurrent::Promises::Future:0x000035 pending>, +# #<Concurrent::Promises::Future:0x000036 pending>] sleep 0.01 source.cancel # => true @@ -943,8 +943,8 @@

      Parallel background processing with cancellation

      tasks share a cancellation, when one of them fails it cancels the others.

      source, token = Concurrent::Cancellation.create
      -# => [#<Concurrent::Cancellation:0x000038 canceled:false>,
      -#     #<Concurrent::Cancellation::Token:0x000039 canceled:false>]
      +# => [#<Concurrent::Cancellation:0x000037 canceled:false>,
      +#     #<Concurrent::Cancellation::Token:0x000038 canceled:false>]
       tasks = 4.times.map do |i|
         Concurrent::Promises.future(source, token, i) do |source, token, i|
           count = 0
      @@ -960,10 +960,10 @@ 

      Parallel background processing with cancellation

      end end end -# => [#<Concurrent::Promises::Future:0x00003a pending>, +# => [#<Concurrent::Promises::Future:0x000039 pending>, +# #<Concurrent::Promises::Future:0x00003a pending>, # #<Concurrent::Promises::Future:0x00003b pending>, -# #<Concurrent::Promises::Future:0x00003c pending>, -# #<Concurrent::Promises::Future:0x00003d pending>] +# #<Concurrent::Promises::Future:0x00003c pending>] Concurrent::Promises.zip(*tasks).result # => [false, # [:cancelled, nil, :cancelled, :cancelled], @@ -973,8 +973,8 @@

      Parallel background processing with cancellation

      Without the randomly failing part it produces following.

      source, token = Concurrent::Cancellation.create
      -# => [#<Concurrent::Cancellation:0x00003e canceled:false>,
      -#     #<Concurrent::Cancellation::Token:0x00003f canceled:false>]
      +# => [#<Concurrent::Cancellation:0x00003d canceled:false>,
      +#     #<Concurrent::Cancellation::Token:0x00003e canceled:false>]
       tasks = 4.times.map do |i|
         Concurrent::Promises.future(source, token, i) do |source, token, i|
           count = 0
      @@ -1081,7 +1081,7 @@ 

      Throttling concurrency

      # "*********"] max_tree = Concurrent::Throttle.new 3 -# => #<Concurrent::Throttle:0x000040 limit:3 can_run:3> +# => #<Concurrent::Throttle:0x00003f limit:3 can_run:3> futures = 11.times.map do |i| max_tree. @@ -1105,10 +1105,10 @@

      Long stream of tasks, applying backpressure

      require 'json' 
       
       channel       = Concurrent::Promises::Channel.new 6
      -# => #<Concurrent::Promises::Channel:0x000041 size:6>
      +# => #<Concurrent::Promises::Channel:0x000040 size:6>
       source, token = Concurrent::Cancellation.create
      -# => [#<Concurrent::Cancellation:0x000042 canceled:false>,
      -#     #<Concurrent::Cancellation::Token:0x000043 canceled:false>]
      +# => [#<Concurrent::Cancellation:0x000041 canceled:false>,
      +#     #<Concurrent::Cancellation::Token:0x000042 canceled:false>]
       
       def query_random_text(token, channel)
         Concurrent::Promises.future do
      @@ -1135,7 +1135,7 @@ 

      Long stream of tasks, applying backpressure

      words = [] # => [] words_throttle = Concurrent::Throttle.new 1 -# => #<Concurrent::Throttle:0x000044 limit:1 can_run:1> +# => #<Concurrent::Throttle:0x000043 limit:1 can_run:1> def count_words_in_random_text(token, channel, words, words_throttle) channel.pop.then do |response| @@ -1157,16 +1157,16 @@

      Long stream of tasks, applying backpressure

      query_processes = 3.times.map do Concurrent::Promises.future(token, channel, &method(:query_random_text)).run end -# => [#<Concurrent::Promises::Future:0x000045 pending>, -# #<Concurrent::Promises::Future:0x000046 pending>, -# #<Concurrent::Promises::Future:0x000047 pending>] +# => [#<Concurrent::Promises::Future:0x000044 pending>, +# #<Concurrent::Promises::Future:0x000045 pending>, +# #<Concurrent::Promises::Future:0x000046 pending>] word_counter_processes = 2.times.map do Concurrent::Promises.future(token, channel, words, words_throttle, &method(:count_words_in_random_text)).run end -# => [#<Concurrent::Promises::Future:0x000048 pending>, -# #<Concurrent::Promises::Future:0x000049 pending>] +# => [#<Concurrent::Promises::Future:0x000047 pending>, +# #<Concurrent::Promises::Future:0x000048 pending>] sleep 0.5
      @@ -1176,12 +1176,12 @@

      Long stream of tasks, applying backpressure

      source.cancel                            # => true
       query_processes.map(&:wait!) 
      -# => [#<Concurrent::Promises::Future:0x000045 fulfilled>,
      -#     #<Concurrent::Promises::Future:0x000046 fulfilled>,
      -#     #<Concurrent::Promises::Future:0x000047 fulfilled>]
      +# => [#<Concurrent::Promises::Future:0x000044 fulfilled>,
      +#     #<Concurrent::Promises::Future:0x000045 fulfilled>,
      +#     #<Concurrent::Promises::Future:0x000046 fulfilled>]
       word_counter_processes.map(&:wait!)
      -# => [#<Concurrent::Promises::Future:0x000048 fulfilled>,
      -#     #<Concurrent::Promises::Future:0x000049 fulfilled>]
      +# => [#<Concurrent::Promises::Future:0x000047 fulfilled>,
      +#     #<Concurrent::Promises::Future:0x000048 fulfilled>]
       words                                    # => [7, 7, 7, 7]
       
      @@ -1202,8 +1202,8 @@

      Periodic task

      end cancellation, token = Concurrent::Cancellation.create -# => [#<Concurrent::Cancellation:0x00004a canceled:false>, -# #<Concurrent::Cancellation::Token:0x00004b canceled:false>] +# => [#<Concurrent::Cancellation:0x000049 canceled:false>, +# #<Concurrent::Cancellation::Token:0x00004a canceled:false>] task = -> token do 5.times do @@ -1214,7 +1214,7 @@

      Periodic task

      end result = Concurrent::Promises.future(0.1, token, task, &repeating_scheduled_task).run -# => #<Concurrent::Promises::Future:0x00004c pending> +# => #<Concurrent::Promises::Future:0x00004b pending> sleep 0.2 cancellation.cancel # => true result.result diff --git a/docs/master/index.html b/docs/master/index.html index 6729a0c6b..880194553 100644 --- a/docs/master/index.html +++ b/docs/master/index.html @@ -313,8 +313,14 @@

      Edge Features

      Supported Ruby versions

      -

      MRI 2.0 and above, JRuby 9000, TruffleRuby are supported. -This gem should be fully compatible with any interpreter that is compliant with Ruby 2.0 or newer. +

        +
      • MRI 2.0 and above
      • +
      • JRuby 9000
      • +
      • TruffleRuby are supported.
      • +
      • Any Ruby interpreter that is compliant with Ruby 2.0 or newer.
      • +
      + +

      Actually we still support mri 1.9.3 and jruby 1.7.27 but we are looking at ways how to drop the support. Java 8 is preferred for JRuby but every Java version on which JRuby 9000 runs is supported.

      The legacy support for Rubinius is kept but it is no longer maintained, if you would like to help diff --git a/ext/concurrent-ruby/com/concurrent_ruby/ext/SynchronizationLibrary.java b/ext/concurrent-ruby/com/concurrent_ruby/ext/SynchronizationLibrary.java index 387459ef2..3193ec47d 100644 --- a/ext/concurrent-ruby/com/concurrent_ruby/ext/SynchronizationLibrary.java +++ b/ext/concurrent-ruby/com/concurrent_ruby/ext/SynchronizationLibrary.java @@ -284,21 +284,23 @@ public JRuby(Ruby runtime, RubyClass metaClass) { } @JRubyMethod(name = "sleep_interruptibly", visibility = Visibility.PUBLIC, module = true) - public static IRubyObject sleepInterruptibly(ThreadContext context, IRubyObject receiver, Block block) { + public static IRubyObject sleepInterruptibly(final ThreadContext context, IRubyObject receiver, final Block block) { try { - return context.getThread().executeTask(context, block, - new RubyThread.Task() { - public IRubyObject run(ThreadContext context, Block block1) throws InterruptedException { - return block1.call(context); - } - - public void wakeup(RubyThread thread, Block block1) { - thread.getNativeThread().interrupt(); - } - }); + context.getThread().executeBlockingTask(new RubyThread.BlockingTask() { + @Override + public void run() throws InterruptedException { + block.call(context); + } + + @Override + public void wakeup() { + context.getThread().getNativeThread().interrupt(); + } + }); } catch (InterruptedException e) { throw context.runtime.newThreadError("interrupted in Concurrent::Synchronization::JRuby.sleep_interruptibly"); } + return context.nil; } } } diff --git a/lib/concurrent.rb b/lib/concurrent.rb index 87de46f1b..d26dd8e0e 100644 --- a/lib/concurrent.rb +++ b/lib/concurrent.rb @@ -1,3 +1,5 @@ +require 'concurrent/utility/193' + require 'concurrent/version' require 'concurrent/constants' require 'concurrent/errors' diff --git a/lib/concurrent/atomic/java_count_down_latch.rb b/lib/concurrent/atomic/java_count_down_latch.rb index e51879315..cb5b35a56 100644 --- a/lib/concurrent/atomic/java_count_down_latch.rb +++ b/lib/concurrent/atomic/java_count_down_latch.rb @@ -16,14 +16,16 @@ def initialize(count = 1) # @!macro count_down_latch_method_wait def wait(timeout = nil) + result = nil if timeout.nil? Synchronization::JRuby.sleep_interruptibly { @latch.await } - true + result = true else Synchronization::JRuby.sleep_interruptibly do - @latch.await(1000 * timeout, java.util.concurrent.TimeUnit::MILLISECONDS) + result = @latch.await(1000 * timeout, java.util.concurrent.TimeUnit::MILLISECONDS) end end + result end # @!macro count_down_latch_method_count_down diff --git a/lib/concurrent/exchanger.rb b/lib/concurrent/exchanger.rb index b0dda71da..5a99550b3 100644 --- a/lib/concurrent/exchanger.rb +++ b/lib/concurrent/exchanger.rb @@ -141,8 +141,8 @@ class Node < Concurrent::Synchronization::Object def initialize(item) super() - @Item = item - @Latch = Concurrent::CountDownLatch.new + @Item = item + @Latch = Concurrent::CountDownLatch.new self.value = nil end @@ -252,8 +252,8 @@ def do_exchange(value, timeout) # - Wake the sleeping occupier # - Return the occupier's item - value = NULL if value.nil? # The sentinel allows nil to be a valid value - me = Node.new(value) # create my node in case I need to occupy + value = NULL if value.nil? # The sentinel allows nil to be a valid value + me = Node.new(value) # create my node in case I need to occupy end_at = Concurrent.monotonic_time + timeout.to_f # The time to give up result = loop do @@ -304,13 +304,17 @@ def initialize # # @return [Object, CANCEL] the value exchanged by the other thread; {CANCEL} on timeout def do_exchange(value, timeout) + result = nil if timeout.nil? - Synchronization::JRuby.sleep_interruptibly { @exchanger.exchange(value) } + Synchronization::JRuby.sleep_interruptibly do + result = @exchanger.exchange(value) + end else Synchronization::JRuby.sleep_interruptibly do - @exchanger.exchange(value, 1000 * timeout, java.util.concurrent.TimeUnit::MILLISECONDS) + result = @exchanger.exchange(value, 1000 * timeout, java.util.concurrent.TimeUnit::MILLISECONDS) end end + result rescue java.util.concurrent.TimeoutException CANCEL end diff --git a/lib/concurrent/utility/193.rb b/lib/concurrent/utility/193.rb new file mode 100644 index 000000000..319dfc924 --- /dev/null +++ b/lib/concurrent/utility/193.rb @@ -0,0 +1,17 @@ +require_relative 'engine' + +if Concurrent.ruby_version :<, 2, 0, 0 + # @!visibility private + module Kernel + def __dir__ + File.dirname __FILE__ + end + end + + # @!visibility private + class LoadError < ScriptError + def path + message.split(' -- ').last + end + end +end diff --git a/lib/concurrent/utility/engine.rb b/lib/concurrent/utility/engine.rb index 2b3f86c06..bc4173e44 100644 --- a/lib/concurrent/utility/engine.rb +++ b/lib/concurrent/utility/engine.rb @@ -8,7 +8,7 @@ def on_jruby? end def on_jruby_9000? - on_jruby? && ruby_version(:>=, 9, 0, 0, JRUBY_VERSION) + on_jruby? && ruby_version(JRUBY_VERSION, :>=, 9, 0, 0) end def on_cruby? @@ -39,7 +39,7 @@ def ruby_engine defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby' end - def ruby_version(comparison, major, minor, patch, version = RUBY_VERSION) + def ruby_version(version = RUBY_VERSION, comparison, major, minor, patch) result = (version.split('.').map(&:to_i) <=> [major, minor, patch]) comparisons = { :== => [0], :>= => [1, 0], diff --git a/lib/concurrent/version.rb b/lib/concurrent/version.rb index 9ed896919..dbe275c88 100644 --- a/lib/concurrent/version.rb +++ b/lib/concurrent/version.rb @@ -1,4 +1,4 @@ module Concurrent - VERSION = '1.1.0' - EDGE_VERSION = '0.4.0' + VERSION = '1.1.1' + EDGE_VERSION = '0.4.1' end