@@ -86,14 +86,14 @@ We also have a [IRC (gitter)](https://gitter.im/ruby-concurrency/concurrent-ruby
8686
8787#### General-purpose Concurrency Abstractions
8888
89- * [ Async] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Async.html ) :
89+ * [ Async] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Async.html ) :
9090 A mixin module that provides simple asynchronous behavior to a class. Loosely based on Erlang's
9191 [ gen_server] ( http://www.erlang.org/doc/man/gen_server.html ) .
92- * [ ScheduledTask] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ScheduledTask.html ) :
92+ * [ ScheduledTask] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/ScheduledTask.html ) :
9393 Like a Future scheduled for a specific future time.
94- * [ TimerTask] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/TimerTask.html ) :
94+ * [ TimerTask] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/TimerTask.html ) :
9595 A Thread that periodically wakes up to perform work at regular intervals.
96- * [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promises.html ) :
96+ * [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Promises.html ) :
9797 Unified implementation of futures and promises which combines features of previous ` Future ` ,
9898 ` Promise ` , ` IVar ` , ` Event ` , ` dataflow ` , ` Delay ` , and (partially) ` TimerTask ` into a single
9999 framework. It extensively uses the new synchronization layer to make all the features
@@ -104,103 +104,103 @@ We also have a [IRC (gitter)](https://gitter.im/ruby-concurrency/concurrent-ruby
104104
105105Collection classes that were originally part of the (deprecated) ` thread_safe ` gem:
106106
107- * [ Array] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Array.html ) A thread-safe
107+ * [ Array] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Array.html ) A thread-safe
108108 subclass of Ruby's standard [ Array] ( http://ruby-doc.org/core-2.2.0/Array.html ) .
109- * [ Hash] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Hash.html ) A thread-safe
109+ * [ Hash] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Hash.html ) A thread-safe
110110 subclass of Ruby's standard [ Hash] ( http://ruby-doc.org/core-2.2.0/Hash.html ) .
111- * [ Set] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Set.html ) A thread-safe
111+ * [ Set] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Set.html ) A thread-safe
112112 subclass of Ruby's standard [ Set] ( http://ruby-doc.org/stdlib-2.4.0/libdoc/set/rdoc/Set.html ) .
113- * [ Map] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Map.html ) A hash-like object
113+ * [ Map] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Map.html ) A hash-like object
114114 that should have much better performance characteristics, especially under high concurrency,
115115 than ` Concurrent::Hash ` .
116- * [ Tuple] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Tuple.html ) A fixed size
116+ * [ Tuple] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Tuple.html ) A fixed size
117117 array with volatile (synchronized, thread safe) getters/setters.
118118
119119Value objects inspired by other languages:
120120
121- * [ Maybe] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Maybe.html ) A thread-safe,
121+ * [ Maybe] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Maybe.html ) A thread-safe,
122122 immutable object representing an optional value, based on
123123 [ Haskell Data.Maybe] ( https://hackage.haskell.org/package/base-4.2.0.1/docs/Data-Maybe.html ) .
124124
125125Structure classes derived from Ruby's [ Struct] ( http://ruby-doc.org/core-2.2.0/Struct.html ) :
126126
127- * [ ImmutableStruct] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ImmutableStruct.html )
127+ * [ ImmutableStruct] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/ImmutableStruct.html )
128128 Immutable struct where values are set at construction and cannot be changed later.
129- * [ MutableStruct] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MutableStruct.html )
129+ * [ MutableStruct] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/MutableStruct.html )
130130 Synchronized, mutable struct where values can be safely changed at any time.
131- * [ SettableStruct] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/SettableStruct.html )
131+ * [ SettableStruct] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/SettableStruct.html )
132132 Synchronized, write-once struct where values can be set at most once, either at construction
133133 or any time thereafter.
134134
135135Thread-safe variables:
136136
137- * [ Agent] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Agent.html ) : A way to
137+ * [ Agent] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Agent.html ) : A way to
138138 manage shared, mutable, * asynchronous* , independent state. Based on Clojure's
139139 [ Agent] ( http://clojure.org/agents ) .
140- * [ Atom] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Atom.html ) : A way to manage
140+ * [ Atom] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Atom.html ) : A way to manage
141141 shared, mutable, * synchronous* , independent state. Based on Clojure's
142142 [ Atom] ( http://clojure.org/atoms ) .
143- * [ AtomicBoolean] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/AtomicBoolean.html )
143+ * [ AtomicBoolean] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/AtomicBoolean.html )
144144 A boolean value that can be updated atomically.
145- * [ AtomicFixnum] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/AtomicFixnum.html )
145+ * [ AtomicFixnum] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/AtomicFixnum.html )
146146 A numeric value that can be updated atomically.
147- * [ AtomicReference] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MutexAtomic.html )
147+ * [ AtomicReference] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/MutexAtomic.html )
148148 An object reference that may be updated atomically.
149- * [ Exchanger] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Exchanger.html )
149+ * [ Exchanger] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Exchanger.html )
150150 A synchronization point at which threads can pair and swap elements within pairs. Based on
151151 Java's [ Exchanger] ( http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Exchanger.html ) .
152- * [ MVar] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MVar.html ) A synchronized
152+ * [ MVar] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/MVar.html ) A synchronized
153153 single element container. Based on Haskell's
154154 [ MVar] ( https://hackage.haskell.org/package/base-4.8.1.0/docs/Control-Concurrent-MVar.html ) and
155155 Scala's [ MVar] ( http://docs.typelevel.org/api/scalaz/nightly/index.html#scalaz.concurrent.MVar$ ) .
156- * [ ThreadLocalVar] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ThreadLocalVar.html )
156+ * [ ThreadLocalVar] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/ThreadLocalVar.html )
157157 A variable where the value is different for each thread.
158- * [ TVar] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/TVar.html ) A transactional
158+ * [ TVar] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/TVar.html ) A transactional
159159 variable implementing software transactional memory (STM). Based on Clojure's
160160 [ Ref] ( http://clojure.org/refs ) .
161161
162162#### Java-inspired ThreadPools and Other Executors
163163
164- * See the [ thread pool] ( http://ruby-concurrency.github.io/concurrent-ruby/file.thread_pools.html )
164+ * See the [ thread pool] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ file.thread_pools.html )
165165 overview, which also contains a list of other Executors available.
166166
167167#### Thread Synchronization Classes and Algorithms
168168
169- * [ CountDownLatch] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/CountDownLatch.html )
169+ * [ CountDownLatch] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/CountDownLatch.html )
170170 A synchronization object that allows one thread to wait on multiple other threads.
171- * [ CyclicBarrier] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/CyclicBarrier.html )
171+ * [ CyclicBarrier] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/CyclicBarrier.html )
172172 A synchronization aid that allows a set of threads to all wait for each other to reach a common barrier point.
173- * [ Event] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Event.html ) Old school
173+ * [ Event] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Event.html ) Old school
174174 kernel-style event.
175- * [ ReadWriteLock] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ReadWriteLock.html )
175+ * [ ReadWriteLock] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/ReadWriteLock.html )
176176 A lock that supports multiple readers but only one writer.
177- * [ ReentrantReadWriteLock] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ReentrantReadWriteLock.html )
177+ * [ ReentrantReadWriteLock] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/ReentrantReadWriteLock.html )
178178 A read/write lock with reentrant and upgrade features.
179- * [ Semaphore] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Semaphore.html )
179+ * [ Semaphore] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Semaphore.html )
180180 A counting-based locking mechanism that uses permits.
181- * [ AtomicMarkableReference] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Atomic/AtomicMarkableReference.html )
181+ * [ AtomicMarkableReference] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Atomic/AtomicMarkableReference.html )
182182
183183#### Deprecated
184184
185185Deprecated features are still available and bugs are being fixed, but new features will not be added.
186186
187- * ~~ [ Future] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Future.html ) :
187+ * ~~ [ Future] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Future.html ) :
188188 An asynchronous operation that produces a value.~~ Replaced by
189- [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promises.html ) .
190- * ~~ [ Dataflow] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent.html#dataflow-class_method ) :
189+ [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Promises.html ) .
190+ * ~~ [ Dataflow] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent.html#dataflow-class_method ) :
191191 Built on Futures, Dataflow allows you to create a task that will be scheduled when all of
192192 its data dependencies are available.~~ Replaced by
193- [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promises.html ) .
194- * ~~ [ Promise] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promise.html ) : Similar
193+ [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Promises.html ) .
194+ * ~~ [ Promise] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Promise.html ) : Similar
195195 to Futures, with more features.~~ Replaced by
196- [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promises.html ) .
197- * ~~ [ Delay] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Delay.html ) Lazy evaluation
196+ [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Promises.html ) .
197+ * ~~ [ Delay] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Delay.html ) Lazy evaluation
198198 of a block yielding an immutable result. Based on Clojure's
199199 [ delay] ( https://clojuredocs.org/clojure.core/delay ) .~~ Replaced by
200- [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promises.html ) .
201- * ~~ [ IVar] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/IVar.html ) Similar to a
200+ [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Promises.html ) .
201+ * ~~ [ IVar] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/IVar.html ) Similar to a
202202 "future" but can be manually assigned once, after which it becomes immutable.~~ Replaced by
203- [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promises.html ) .
203+ [ Promises Framework] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Promises.html ) .
204204
205205### Edge Features
206206
@@ -211,18 +211,18 @@ keep backward compatibility (there may also lack tests and documentation). Seman
211211be obeyed though. Features developed in ` concurrent-ruby-edge ` are expected to move to
212212` concurrent-ruby ` when final.
213213
214- * [ Actor] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Actor.html ) : Implements
214+ * [ Actor] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Actor.html ) : Implements
215215 the Actor Model, where concurrent actors exchange messages.
216216 * Status: Partial documentation and tests; depends on new future/promise framework; stability is good.*
217- * [ Channel] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge /Channel.html ) :
217+ * [ Channel] ( http://ruby-concurrency.github.io/concurrent-ruby/master/Concurrent /Channel.html ) :
218218 Communicating Sequential Processes ([ CSP] ( https://en.wikipedia.org/wiki/Communicating_sequential_processes ) ).
219219 Functionally equivalent to Go [ channels] ( https://tour.golang.org/concurrency/2 ) with additional
220220 inspiration from Clojure [ core.async] ( https://clojure.github.io/core.async/ ) .
221221 * Status: Partial documentation and tests.*
222- * [ LazyRegister] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/LazyRegister.html )
223- * [ LockFreeLinkedSet] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/LockFreeLinkedSet.html )
222+ * [ LazyRegister] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/LazyRegister.html )
223+ * [ LockFreeLinkedSet] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/Edge/LockFreeLinkedSet.html )
224224 * Status: will be moved to core soon.*
225- * [ LockFreeStack] ( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/LockFreeStack.html )
225+ * [ LockFreeStack] ( http://ruby-concurrency.github.io/concurrent-ruby/master/ Concurrent/LockFreeStack.html )
226226 * Status: missing documentation and tests.*
227227
228228## Supported Ruby versions
0 commit comments