concurrent-ruby-ext 0.9.2-x64-mingw32 → 1.0.0.pre1-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +15 -1
 - data/README.md +67 -68
 - data/lib/concurrent/2.0/extension.so +0 -0
 - data/lib/concurrent/2.1/extension.so +0 -0
 - data/lib/concurrent/2.2/extension.so +0 -0
 - metadata +10 -7
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: e3f98b24f2f54b303db8b0786c17bacdbf354128
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c382e502fff37f2f73131dc314d08693a64b7722
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 69de2c7f7e8b19be79d70885aaa79f28fb2d6ba66f83912c0e982efc1dec74462edefd1adb64634a0b94fd0cc63c3d5ffbbd8f321ea87c007901f672744a66b4
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: bb18f390443ff3c78e87cbe2d7c6197d22256a953398107ee4c3893ae3bbbb7e7b0097be9dd129497bd284c325c2d8511f9af030109697420b10e6682dd872bd
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,4 +1,18 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            ## Current Release  
     | 
| 
      
 1 
     | 
    
         
            +
            ## Current Release v1.0.0.pre1 (19 Aug 2015)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Merged in the `thread_safe` gem
         
     | 
| 
      
 4 
     | 
    
         
            +
              - `Concurrent::Array`
         
     | 
| 
      
 5 
     | 
    
         
            +
              - `Concurrent::Hash`
         
     | 
| 
      
 6 
     | 
    
         
            +
              - `Concurrent::Map` (formerly ThreadSafe::Cache)
         
     | 
| 
      
 7 
     | 
    
         
            +
              - `Concurrent::Tuple`
         
     | 
| 
      
 8 
     | 
    
         
            +
            * Minor improvements to Concurrent::Map
         
     | 
| 
      
 9 
     | 
    
         
            +
            * Complete rewrite of `Exchanger`
         
     | 
| 
      
 10 
     | 
    
         
            +
            * Removed all deprecated code (classes, methods, constants, etc.)
         
     | 
| 
      
 11 
     | 
    
         
            +
            * Updated Agent, MutexAtomic, and BufferedChannel to inherit from Synchronization::Object.
         
     | 
| 
      
 12 
     | 
    
         
            +
            * Many improved tests
         
     | 
| 
      
 13 
     | 
    
         
            +
            * Some internal reorganization
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            ### Release v0.9.1 (09 August 2015)
         
     | 
| 
       2 
16 
     | 
    
         | 
| 
       3 
17 
     | 
    
         
             
            * Fixed a Rubiniux bug in synchronization object
         
     | 
| 
       4 
18 
     | 
    
         
             
            * Fixed all interpreter warnings (except circular references)
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -47,7 +47,7 @@ 
     | 
|
| 
       47 
47 
     | 
    
         | 
| 
       48 
48 
     | 
    
         
             
            MRI 1.9.3, 2.0, 2.1, 2.2, JRuby (1.9 mode), and Rubinius 2.x are supported.
         
     | 
| 
       49 
49 
     | 
    
         
             
            This gem should be fully compatible with any interpreter that is compliant with Ruby 1.9.3 or newer.
         
     | 
| 
       50 
     | 
    
         
            -
            Java 8 is  
     | 
| 
      
 50 
     | 
    
         
            +
            Java 8 is preferred for JRuby but every Java version on which JRuby 9000 runs will be supported.
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
52 
     | 
    
         
             
            ## Features & Documentation
         
     | 
| 
       53 
53 
     | 
    
         | 
| 
         @@ -62,54 +62,62 @@ This library contains a variety of concurrency abstractions at high and low leve 
     | 
|
| 
       62 
62 
     | 
    
         
             
            #### General-purpose Concurrency Abstractions
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
            * [Async](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Async.html): A mixin module that provides simple asynchronous behavior to any standard class/object or object.
         
     | 
| 
       65 
     | 
    
         
            -
            * [Atom](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Atom.html): A way to manage shared, synchronous, independent state.
         
     | 
| 
       66 
65 
     | 
    
         
             
            * [Future](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Future.html): An asynchronous operation that produces a value.
         
     | 
| 
       67 
66 
     | 
    
         
             
              * [Dataflow](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent.html#dataflow-class_method): Built on Futures, Dataflow allows you to create a task that will be scheduled when all of its data dependencies are available.
         
     | 
| 
       68 
67 
     | 
    
         
             
            * [Promise](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Promise.html): Similar to Futures, with more features.
         
     | 
| 
       69 
68 
     | 
    
         
             
            * [ScheduledTask](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ScheduledTask.html): Like a Future scheduled for a specific future time.
         
     | 
| 
       70 
69 
     | 
    
         
             
            * [TimerTask](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/TimerTask.html): A Thread that periodically wakes up to perform work at regular intervals.
         
     | 
| 
       71 
70 
     | 
    
         | 
| 
       72 
     | 
    
         
            -
            #### Thread-safe Value Objects
         
     | 
| 
      
 71 
     | 
    
         
            +
            #### Thread-safe Value Objects, Structures, and Collections
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            Collection classes that were originally part of the (deprecated) `thread_safe` gem:
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            * [Array](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Array.html) A thread-safe subclass of Ruby's standard [Array](http://ruby-doc.org/core-2.2.0/Array.html).
         
     | 
| 
      
 76 
     | 
    
         
            +
            * [Hash](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Hash.html) A thread-safe subclass of Ruby's standard [Hash](http://ruby-doc.org/core-2.2.0/Hash.html).
         
     | 
| 
      
 77 
     | 
    
         
            +
            * [Map](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Map.html) A hash-like object that should have much better performance characteristics, especially under high concurrency, than `Concurrent::Hash`.
         
     | 
| 
      
 78 
     | 
    
         
            +
            * [Tuple](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Tuple.html) A fixed size array with volatile (synchronized, thread safe) getters/setters.
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
            Value objects inspired by other languages:
         
     | 
| 
       73 
81 
     | 
    
         | 
| 
       74 
     | 
    
         
            -
            *  
     | 
| 
      
 82 
     | 
    
         
            +
            * [Atom](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Atom.html): A way to manage shared, synchronous, independent state.
         
     | 
| 
      
 83 
     | 
    
         
            +
            * [Maybe](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Maybe.html) A thread-safe, immutable object representing an optional value, based on
         
     | 
| 
       75 
84 
     | 
    
         
             
              [Haskell Data.Maybe](https://hackage.haskell.org/package/base-4.2.0.1/docs/Data-Maybe.html).
         
     | 
| 
       76 
     | 
    
         
            -
            *  
     | 
| 
      
 85 
     | 
    
         
            +
            * [Delay](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Delay.html) Lazy evaluation of a block yielding an immutable result. Based on Clojure's
         
     | 
| 
       77 
86 
     | 
    
         
             
               [delay](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Delay.html).
         
     | 
| 
       78 
87 
     | 
    
         | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
      
 88 
     | 
    
         
            +
            Structure classes derived from Ruby's [Struct](http://ruby-doc.org/core-2.2.0/Struct.html):
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            * [ImmutableStruct](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ImmutableStruct.html) Immutable struct where values are set at construction and cannot be changed later.
         
     | 
| 
      
 91 
     | 
    
         
            +
            * [MutableStruct](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MutableStruct.html) Synchronized, mutable struct where values can be safely changed at any time.
         
     | 
| 
      
 92 
     | 
    
         
            +
            * [SettableStruct](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/SettableStruct.html) Synchronized, write-once struct where values can be set at most once, either at construction or any time thereafter.
         
     | 
| 
       80 
93 
     | 
    
         | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
      
 94 
     | 
    
         
            +
            Thread-safe variables:
         
     | 
| 
       82 
95 
     | 
    
         | 
| 
       83 
     | 
    
         
            -
            *  
     | 
| 
       84 
     | 
    
         
            -
            *  
     | 
| 
       85 
     | 
    
         
            -
            *  
     | 
| 
      
 96 
     | 
    
         
            +
            * [AtomicBoolean](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/AtomicBoolean.html) A boolean value that can be updated atomically.
         
     | 
| 
      
 97 
     | 
    
         
            +
            * [AtomicFixnum](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/AtomicFixnum.html) A numeric value that can be updated atomically.
         
     | 
| 
      
 98 
     | 
    
         
            +
            * [AtomicReference](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MutexAtomic.html) An object reference that may be updated atomically.
         
     | 
| 
      
 99 
     | 
    
         
            +
            * [ThreadLocalVar](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ThreadLocalVar.html) A variable where the value is different for each thread.
         
     | 
| 
       86 
100 
     | 
    
         | 
| 
       87 
101 
     | 
    
         
             
            #### Java-inspired ThreadPools and Other Executors
         
     | 
| 
       88 
102 
     | 
    
         | 
| 
       89 
     | 
    
         
            -
            * See [ 
     | 
| 
      
 103 
     | 
    
         
            +
            * See the [thread pool](http://ruby-concurrency.github.io/concurrent-ruby/file.thread_pools.html) overview, which also contains a list of other Executors available.
         
     | 
| 
       90 
104 
     | 
    
         | 
| 
       91 
105 
     | 
    
         
             
            #### Thread Synchronization Classes and Algorithms
         
     | 
| 
       92 
106 
     | 
    
         | 
| 
       93 
     | 
    
         
            -
            * [CountdownLatch](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/CountDownLatch.html)
         
     | 
| 
       94 
     | 
    
         
            -
            * [CyclicBarrier](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/CyclicBarrier.html)
         
     | 
| 
       95 
     | 
    
         
            -
            * [Event](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Event.html)
         
     | 
| 
       96 
     | 
    
         
            -
            * [ 
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
            * [ 
     | 
| 
       101 
     | 
    
         
            -
            * [ 
     | 
| 
       102 
     | 
    
         
            -
            * [ 
     | 
| 
       103 
     | 
    
         
            -
            * [I-Structures](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/IVar.html) (IVar)
         
     | 
| 
       104 
     | 
    
         
            -
            * [M-Structures](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MVar.html) (MVar)
         
     | 
| 
       105 
     | 
    
         
            -
            * [Thread-local variables](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ThreadLocalVar.html)
         
     | 
| 
       106 
     | 
    
         
            -
            * [Software transactional memory](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/TVar.html) (TVar)
         
     | 
| 
       107 
     | 
    
         
            -
            * [ReadWriteLock](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ReadWriteLock.html)
         
     | 
| 
       108 
     | 
    
         
            -
            * [ReentrantReadWriteLock](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ReentrantReadWriteLock.html)
         
     | 
| 
      
 107 
     | 
    
         
            +
            * [CountdownLatch](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/CountDownLatch.html) A synchronization object that allows one thread to wait on multiple other threads.
         
     | 
| 
      
 108 
     | 
    
         
            +
            * [CyclicBarrier](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/CyclicBarrier.html) A synchronization aid that allows a set of threads to all wait for each other to reach a common barrier point.
         
     | 
| 
      
 109 
     | 
    
         
            +
            * [Event](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Event.html) Old school kernel-style event.
         
     | 
| 
      
 110 
     | 
    
         
            +
            * [Exchanger](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Exchanger.html)
         
     | 
| 
      
 111 
     | 
    
         
            +
            * [I-Structure](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/IVar.html) (IVar) Similar to a "future" but can be manually assigned once, after which it becomes immutable.
         
     | 
| 
      
 112 
     | 
    
         
            +
            * [M-Structure](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/MVar.html) (MVar) A synchronized single element container.
         
     | 
| 
      
 113 
     | 
    
         
            +
            * [ReadWriteLock](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ReadWriteLock.html) A lock that supports multiple readers but only one writer.
         
     | 
| 
      
 114 
     | 
    
         
            +
            * [ReentrantReadWriteLock](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/ReentrantReadWriteLock.html) A read/write lock with reentrant and upgrade features.
         
     | 
| 
      
 115 
     | 
    
         
            +
            * [Semaphore](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Semaphore.html) A counting-based locking mechanism that uses permits.
         
     | 
| 
      
 116 
     | 
    
         
            +
            * [Software transactional memory](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/TVar.html) (TVar) A transactional variable - a single-element container that is used as part of a transaction.
         
     | 
| 
       109 
117 
     | 
    
         | 
| 
       110 
118 
     | 
    
         
             
            ### Edge Features
         
     | 
| 
       111 
119 
     | 
    
         | 
| 
       112 
     | 
    
         
            -
            These are available in the `concurrent-ruby-edge` companion gem 
     | 
| 
      
 120 
     | 
    
         
            +
            These are available in the `concurrent-ruby-edge` companion gem.
         
     | 
| 
       113 
121 
     | 
    
         | 
| 
       114 
122 
     | 
    
         
             
            These features are under active development and may change frequently. They are expected not to
         
     | 
| 
       115 
123 
     | 
    
         
             
            keep backward compatibility (there may also lack tests and documentation). Semantic versions will
         
     | 
| 
         @@ -125,10 +133,9 @@ be obeyed though. Features developed in `concurrent-ruby-edge` are expected to m 
     | 
|
| 
       125 
133 
     | 
    
         
             
            * [Agent](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Agent.html): A single atomic value that represents an identity.
         
     | 
| 
       126 
134 
     | 
    
         
             
            * [Channel](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Channel.html):
         
     | 
| 
       127 
135 
     | 
    
         
             
              Communicating Sequential Processes (CSP).
         
     | 
| 
       128 
     | 
    
         
            -
            * [Exchanger](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Exchanger.html)
         
     | 
| 
       129 
136 
     | 
    
         
             
            * [LazyRegister](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/LazyRegister.html)
         
     | 
| 
       130 
     | 
    
         
            -
            * [ 
     | 
| 
       131 
     | 
    
         
            -
            * [ 
     | 
| 
      
 137 
     | 
    
         
            +
            * [AtomicMarkableReference](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/AtomicMarkableReference.html)
         
     | 
| 
      
 138 
     | 
    
         
            +
            * [LockFreeLinkedSet](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/LockFreeLinkedSet.html)
         
     | 
| 
       132 
139 
     | 
    
         
             
            * [LockFreeStack](http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Edge/LockFreeStack.html)
         
     | 
| 
       133 
140 
     | 
    
         | 
| 
       134 
141 
     | 
    
         
             
            #### Statuses:
         
     | 
| 
         @@ -139,52 +146,21 @@ be obeyed though. Features developed in `concurrent-ruby-edge` are expected to m 
     | 
|
| 
       139 
146 
     | 
    
         
             
            - **Future/Promise Framework** - API changes; partial documentation and tests; stability good.
         
     | 
| 
       140 
147 
     | 
    
         
             
            - **Agent** - Incomplete behaviour compared to Clojure's models; stability good.
         
     | 
| 
       141 
148 
     | 
    
         
             
            - **Channel** - Missing documentation; limted features; stability good.
         
     | 
| 
       142 
     | 
    
         
            -
            - **Exchanger** - Known race condition requiring a new implementation.
         
     | 
| 
       143 
149 
     | 
    
         
             
            - **LazyRegister** - Missing documentation and tests.
         
     | 
| 
       144 
150 
     | 
    
         
             
            - **AtomicMarkableReference, LockFreeLinkedSet, LockFreeStack** - Needs real world battle testing
         
     | 
| 
       145 
151 
     | 
    
         | 
| 
       146 
152 
     | 
    
         
             
            ## Usage
         
     | 
| 
       147 
153 
     | 
    
         | 
| 
       148 
     | 
    
         
            -
             
     | 
| 
      
 154 
     | 
    
         
            +
            Everything within this gem can be loaded simply by requiring it:
         
     | 
| 
       149 
155 
     | 
    
         | 
| 
       150 
156 
     | 
    
         
             
            ```ruby
         
     | 
| 
       151 
157 
     | 
    
         
             
            require 'concurrent'
         
     | 
| 
       152 
158 
     | 
    
         
             
            ```
         
     | 
| 
       153 
159 
     | 
    
         | 
| 
       154 
     | 
    
         
            -
            To  
     | 
| 
      
 160 
     | 
    
         
            +
            To use the tools in the Edge gem it must be required separately:
         
     | 
| 
       155 
161 
     | 
    
         | 
| 
       156 
162 
     | 
    
         
             
            ```ruby
         
     | 
| 
       157 
     | 
    
         
            -
            require 'concurrent' 
     | 
| 
       158 
     | 
    
         
            -
             
     | 
| 
       159 
     | 
    
         
            -
            # groups
         
     | 
| 
       160 
     | 
    
         
            -
             
     | 
| 
       161 
     | 
    
         
            -
            require 'concurrent/atomics'        # atomic and thread synchronization classes
         
     | 
| 
       162 
     | 
    
         
            -
            require 'concurrent/executors'      # Thread pools and other executors
         
     | 
| 
       163 
     | 
    
         
            -
             
     | 
| 
       164 
     | 
    
         
            -
            # individual abstractions
         
     | 
| 
       165 
     | 
    
         
            -
             
     | 
| 
       166 
     | 
    
         
            -
            require 'concurrent/async'            # Concurrent::Async
         
     | 
| 
       167 
     | 
    
         
            -
            require 'concurrent/atom'             # Concurrent::Atom
         
     | 
| 
       168 
     | 
    
         
            -
            require 'concurrent/dataflow'         # Concurrent::dataflow
         
     | 
| 
       169 
     | 
    
         
            -
            require 'concurrent/delay'            # Concurrent::Delay
         
     | 
| 
       170 
     | 
    
         
            -
            require 'concurrent/future'           # Concurrent::Future
         
     | 
| 
       171 
     | 
    
         
            -
            require 'concurrent/immutable_struct' # Concurrent::ImmutableStruct
         
     | 
| 
       172 
     | 
    
         
            -
            require 'concurrent/ivar'             # Concurrent::IVar
         
     | 
| 
       173 
     | 
    
         
            -
            require 'concurrent/maybe'            # Concurrent::Maybe
         
     | 
| 
       174 
     | 
    
         
            -
            require 'concurrent/mutable_struct'   # Concurrent::MutableStruct
         
     | 
| 
       175 
     | 
    
         
            -
            require 'concurrent/mvar'             # Concurrent::MVar
         
     | 
| 
       176 
     | 
    
         
            -
            require 'concurrent/promise'          # Concurrent::Promise
         
     | 
| 
       177 
     | 
    
         
            -
            require 'concurrent/scheduled_task'   # Concurrent::ScheduledTask
         
     | 
| 
       178 
     | 
    
         
            -
            require 'concurrent/settable_struct'  # Concurrent::SettableStruct
         
     | 
| 
       179 
     | 
    
         
            -
            require 'concurrent/timer_task'       # Concurrent::TimerTask
         
     | 
| 
       180 
     | 
    
         
            -
            require 'concurrent/tvar'             # Concurrent::TVar
         
     | 
| 
       181 
     | 
    
         
            -
             
     | 
| 
       182 
     | 
    
         
            -
            # experimental - available in `concurrent-ruby-edge` companion gem
         
     | 
| 
       183 
     | 
    
         
            -
             
     | 
| 
       184 
     | 
    
         
            -
            require 'concurrent/actor'          # Concurrent::Actor and supporting code
         
     | 
| 
       185 
     | 
    
         
            -
            require 'concurrent/edge/future'    # new Future Framework
         
     | 
| 
       186 
     | 
    
         
            -
            require 'concurrent/agent'          # Concurrent::Agent
         
     | 
| 
       187 
     | 
    
         
            -
            require 'concurrent/channel '       # Concurrent::Channel and supporting code
         
     | 
| 
      
 163 
     | 
    
         
            +
            require 'concurrent-edge'
         
     | 
| 
       188 
164 
     | 
    
         
             
            ```
         
     | 
| 
       189 
165 
     | 
    
         | 
| 
       190 
166 
     | 
    
         
             
            If the library does not behave as expected, `Concurrent.use_stdlib_logger(Logger::DEBUG)` could help to reveal the problem.
         
     | 
| 
         @@ -203,6 +179,23 @@ gem 'concurrent-ruby' 
     | 
|
| 
       203 
179 
     | 
    
         | 
| 
       204 
180 
     | 
    
         
             
            and run `bundle install` from your shell.
         
     | 
| 
       205 
181 
     | 
    
         | 
| 
      
 182 
     | 
    
         
            +
            ### Edge Gem Installation
         
     | 
| 
      
 183 
     | 
    
         
            +
             
     | 
| 
      
 184 
     | 
    
         
            +
            The Edge gem must be installed separately from the core gem:
         
     | 
| 
      
 185 
     | 
    
         
            +
             
     | 
| 
      
 186 
     | 
    
         
            +
            ```shell
         
     | 
| 
      
 187 
     | 
    
         
            +
            gem install concurrent-ruby-edge
         
     | 
| 
      
 188 
     | 
    
         
            +
            ```
         
     | 
| 
      
 189 
     | 
    
         
            +
             
     | 
| 
      
 190 
     | 
    
         
            +
            or add the following line to Gemfile:
         
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 193 
     | 
    
         
            +
            gem 'concurrent-ruby-edge'
         
     | 
| 
      
 194 
     | 
    
         
            +
            ```
         
     | 
| 
      
 195 
     | 
    
         
            +
             
     | 
| 
      
 196 
     | 
    
         
            +
            and run `bundle install` from your shell.
         
     | 
| 
      
 197 
     | 
    
         
            +
             
     | 
| 
      
 198 
     | 
    
         
            +
             
     | 
| 
       206 
199 
     | 
    
         
             
            ### C Extensions for MRI
         
     | 
| 
       207 
200 
     | 
    
         | 
| 
       208 
201 
     | 
    
         
             
            Potential performance improvements may be achieved under MRI by installing optional C extensions.
         
     | 
| 
         @@ -240,7 +233,7 @@ The best practice is to depend on `concurrent-ruby` and let users to decide if t 
     | 
|
| 
       240 
233 
     | 
    
         | 
| 
       241 
234 
     | 
    
         
             
            All published versions of this gem (core, extension, and several platform-specific packages) are compiled,
         
     | 
| 
       242 
235 
     | 
    
         
             
            packaged, tested, and published using an open, [automated process](https://github.com/ruby-concurrency/rake-compiler-dev-box).
         
     | 
| 
       243 
     | 
    
         
            -
            This process can also be used to create pre-compiled binaries of the extension gem for  
     | 
| 
      
 236 
     | 
    
         
            +
            This process can also be used to create pre-compiled binaries of the extension gem for virtually
         
     | 
| 
       244 
237 
     | 
    
         
             
            any platform. *Documentation is forthcoming...*
         
     | 
| 
       245 
238 
     | 
    
         | 
| 
       246 
239 
     | 
    
         
             
            ```
         
     | 
| 
         @@ -272,11 +265,17 @@ bundle exec rake compile            # Compile all the extensions 
     | 
|
| 
       272 
265 
     | 
    
         
             
            ## Maintainers
         
     | 
| 
       273 
266 
     | 
    
         | 
| 
       274 
267 
     | 
    
         
             
            * [Jerry D'Antonio](https://github.com/jdantonio) (creator)
         
     | 
| 
      
 268 
     | 
    
         
            +
            * [Petr Chalupa](https://github.com/pitr-ch)
         
     | 
| 
       275 
269 
     | 
    
         
             
            * [Michele Della Torre](https://github.com/mighe)
         
     | 
| 
       276 
270 
     | 
    
         
             
            * [Chris Seaton](https://github.com/chrisseaton)
         
     | 
| 
       277 
     | 
    
         
            -
            * [Lucas Allan](https://github.com/lucasallan)
         
     | 
| 
       278 
     | 
    
         
            -
            * [Petr Chalupa](https://github.com/pitr-ch)
         
     | 
| 
       279 
271 
     | 
    
         
             
            * [Paweł Obrok](https://github.com/obrok)
         
     | 
| 
      
 272 
     | 
    
         
            +
            * [Lucas Allan](https://github.com/lucasallan)
         
     | 
| 
      
 273 
     | 
    
         
            +
             
     | 
| 
      
 274 
     | 
    
         
            +
            ### Special Thanks
         
     | 
| 
      
 275 
     | 
    
         
            +
             
     | 
| 
      
 276 
     | 
    
         
            +
            * [Brian Durand](https://github.com/bdurand) for the `ref` gem
         
     | 
| 
      
 277 
     | 
    
         
            +
            * [Charles Oliver Nutter](https://github.com/headius) for the `atomic` and `thread_safe` gems
         
     | 
| 
      
 278 
     | 
    
         
            +
            * [thedarkone](https://github.com/thedarkone) for the `thread_safe` gem
         
     | 
| 
       280 
279 
     | 
    
         | 
| 
       281 
280 
     | 
    
         
             
            ## Contributing
         
     | 
| 
       282 
281 
     | 
    
         | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
| 
         Binary file 
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: concurrent-ruby-ext
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.0.pre1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: x64-mingw32
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Jerry D'Antonio
         
     | 
| 
      
 8 
     | 
    
         
            +
            - The Ruby Concurrency Team
         
     | 
| 
       8 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2015-08-19 00:00:00.000000000 Z
         
     | 
| 
       12 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
15 
     | 
    
         
             
              name: concurrent-ruby
         
     | 
| 
         @@ -16,18 +17,20 @@ dependencies: 
     | 
|
| 
       16 
17 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
18 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       18 
19 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 20 
     | 
    
         
            +
                    version: 1.0.0.pre1
         
     | 
| 
       20 
21 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
22 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
23 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
24 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
25 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       25 
26 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: 0. 
     | 
| 
      
 27 
     | 
    
         
            +
                    version: 1.0.0.pre1
         
     | 
| 
       27 
28 
     | 
    
         
             
            description: |2
         
     | 
| 
       28 
29 
     | 
    
         
             
                  C extensions to optimize the concurrent-ruby gem when running under MRI.
         
     | 
| 
       29 
30 
     | 
    
         
             
                  Please see http://concurrent-ruby.com for more information.
         
     | 
| 
       30 
     | 
    
         
            -
            email: 
     | 
| 
      
 31 
     | 
    
         
            +
            email:
         
     | 
| 
      
 32 
     | 
    
         
            +
            - jerry.dantonio@gmail.com
         
     | 
| 
      
 33 
     | 
    
         
            +
            - concurrent-ruby@googlegroups.com
         
     | 
| 
       31 
34 
     | 
    
         
             
            executables: []
         
     | 
| 
       32 
35 
     | 
    
         
             
            extensions: []
         
     | 
| 
       33 
36 
     | 
    
         
             
            extra_rdoc_files:
         
     | 
| 
         @@ -69,9 +72,9 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       69 
72 
     | 
    
         
             
                  version: 1.9.3
         
     | 
| 
       70 
73 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       71 
74 
     | 
    
         
             
              requirements:
         
     | 
| 
       72 
     | 
    
         
            -
              - - " 
     | 
| 
      
 75 
     | 
    
         
            +
              - - ">"
         
     | 
| 
       73 
76 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       74 
     | 
    
         
            -
                  version:  
     | 
| 
      
 77 
     | 
    
         
            +
                  version: 1.3.1
         
     | 
| 
       75 
78 
     | 
    
         
             
            requirements: []
         
     | 
| 
       76 
79 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       77 
80 
     | 
    
         
             
            rubygems_version: 2.4.8
         
     |