concurrent-ruby 1.1.5 → 1.1.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +65 -1
  3. data/Gemfile +6 -10
  4. data/{LICENSE.md → LICENSE.txt} +18 -20
  5. data/README.md +46 -23
  6. data/Rakefile +46 -44
  7. data/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicFixnumLibrary.java +0 -0
  8. data/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaSemaphoreLibrary.java +52 -22
  9. data/lib/{concurrent → concurrent-ruby/concurrent}/agent.rb +0 -0
  10. data/lib/{concurrent → concurrent-ruby/concurrent}/array.rb +6 -6
  11. data/lib/{concurrent → concurrent-ruby/concurrent}/async.rb +10 -20
  12. data/lib/{concurrent → concurrent-ruby/concurrent}/atom.rb +1 -1
  13. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/abstract_thread_local_var.rb +0 -0
  14. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/atomic_boolean.rb +2 -2
  15. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/atomic_fixnum.rb +0 -0
  16. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/atomic_markable_reference.rb +0 -0
  17. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/atomic_reference.rb +1 -0
  18. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/count_down_latch.rb +1 -1
  19. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/cyclic_barrier.rb +0 -0
  20. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/event.rb +2 -2
  21. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/java_count_down_latch.rb +0 -0
  22. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/java_thread_local_var.rb +0 -0
  23. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/mutex_atomic_boolean.rb +0 -0
  24. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/mutex_atomic_fixnum.rb +0 -0
  25. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/mutex_count_down_latch.rb +0 -0
  26. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/mutex_semaphore.rb +18 -2
  27. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/read_write_lock.rb +0 -0
  28. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/reentrant_read_write_lock.rb +4 -6
  29. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/ruby_thread_local_var.rb +60 -40
  30. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/semaphore.rb +26 -5
  31. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic/thread_local_var.rb +1 -1
  32. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic_reference/mutex_atomic.rb +0 -0
  33. data/lib/{concurrent → concurrent-ruby/concurrent}/atomic_reference/numeric_cas_wrapper.rb +0 -0
  34. data/lib/{concurrent → concurrent-ruby/concurrent}/atomics.rb +0 -0
  35. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/copy_on_notify_observer_set.rb +0 -0
  36. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/copy_on_write_observer_set.rb +0 -0
  37. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/java_non_concurrent_priority_queue.rb +0 -0
  38. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/lock_free_stack.rb +0 -0
  39. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/map/atomic_reference_map_backend.rb +0 -0
  40. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/map/mri_map_backend.rb +1 -1
  41. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/map/non_concurrent_map_backend.rb +0 -0
  42. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/map/synchronized_map_backend.rb +0 -0
  43. data/lib/concurrent-ruby/concurrent/collection/map/truffleruby_map_backend.rb +14 -0
  44. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/non_concurrent_priority_queue.rb +1 -1
  45. data/lib/{concurrent → concurrent-ruby/concurrent}/collection/ruby_non_concurrent_priority_queue.rb +11 -1
  46. data/lib/{concurrent → concurrent-ruby/concurrent}/concern/deprecation.rb +0 -0
  47. data/lib/{concurrent → concurrent-ruby/concurrent}/concern/dereferenceable.rb +2 -2
  48. data/lib/{concurrent → concurrent-ruby/concurrent}/concern/logging.rb +0 -0
  49. data/lib/{concurrent → concurrent-ruby/concurrent}/concern/obligation.rb +0 -0
  50. data/lib/{concurrent → concurrent-ruby/concurrent}/concern/observable.rb +0 -0
  51. data/lib/concurrent-ruby/concurrent/concurrent_ruby.jar +0 -0
  52. data/lib/{concurrent → concurrent-ruby/concurrent}/configuration.rb +13 -9
  53. data/lib/{concurrent → concurrent-ruby/concurrent}/constants.rb +0 -0
  54. data/lib/{concurrent → concurrent-ruby/concurrent}/dataflow.rb +0 -0
  55. data/lib/{concurrent → concurrent-ruby/concurrent}/delay.rb +0 -0
  56. data/lib/{concurrent → concurrent-ruby/concurrent}/errors.rb +0 -0
  57. data/lib/{concurrent → concurrent-ruby/concurrent}/exchanger.rb +0 -0
  58. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/abstract_executor_service.rb +33 -36
  59. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/cached_thread_pool.rb +4 -4
  60. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/executor_service.rb +2 -2
  61. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/fixed_thread_pool.rb +29 -15
  62. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/immediate_executor.rb +0 -0
  63. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/indirect_immediate_executor.rb +0 -0
  64. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/java_executor_service.rb +19 -7
  65. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/java_single_thread_executor.rb +4 -3
  66. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/java_thread_pool_executor.rb +19 -2
  67. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/ruby_executor_service.rb +10 -6
  68. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/ruby_single_thread_executor.rb +0 -1
  69. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/ruby_thread_pool_executor.rb +46 -42
  70. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/safe_task_executor.rb +5 -5
  71. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/serial_executor_service.rb +0 -0
  72. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/serialized_execution.rb +0 -0
  73. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/serialized_execution_delegator.rb +0 -0
  74. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/simple_executor_service.rb +1 -1
  75. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/single_thread_executor.rb +1 -0
  76. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/thread_pool_executor.rb +2 -1
  77. data/lib/{concurrent → concurrent-ruby/concurrent}/executor/timer_set.rb +0 -1
  78. data/lib/{concurrent → concurrent-ruby/concurrent}/executors.rb +0 -0
  79. data/lib/{concurrent → concurrent-ruby/concurrent}/future.rb +0 -0
  80. data/lib/{concurrent → concurrent-ruby/concurrent}/hash.rb +1 -1
  81. data/lib/{concurrent → concurrent-ruby/concurrent}/immutable_struct.rb +9 -1
  82. data/lib/{concurrent → concurrent-ruby/concurrent}/ivar.rb +0 -0
  83. data/lib/{concurrent → concurrent-ruby/concurrent}/map.rb +14 -5
  84. data/lib/{concurrent → concurrent-ruby/concurrent}/maybe.rb +0 -0
  85. data/lib/{concurrent → concurrent-ruby/concurrent}/mutable_struct.rb +12 -2
  86. data/lib/{concurrent → concurrent-ruby/concurrent}/mvar.rb +0 -0
  87. data/lib/{concurrent → concurrent-ruby/concurrent}/options.rb +0 -0
  88. data/lib/{concurrent → concurrent-ruby/concurrent}/promise.rb +1 -0
  89. data/lib/{concurrent → concurrent-ruby/concurrent}/promises.rb +0 -0
  90. data/lib/{concurrent → concurrent-ruby/concurrent}/re_include.rb +0 -0
  91. data/lib/{concurrent → concurrent-ruby/concurrent}/scheduled_task.rb +29 -16
  92. data/lib/{concurrent → concurrent-ruby/concurrent}/set.rb +19 -11
  93. data/lib/{concurrent → concurrent-ruby/concurrent}/settable_struct.rb +11 -1
  94. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/abstract_lockable_object.rb +0 -0
  95. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/abstract_object.rb +0 -0
  96. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/abstract_struct.rb +11 -0
  97. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/condition.rb +0 -0
  98. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/jruby_lockable_object.rb +0 -0
  99. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/jruby_object.rb +0 -0
  100. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/lock.rb +0 -0
  101. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/lockable_object.rb +3 -5
  102. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/mri_object.rb +0 -0
  103. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/mutex_lockable_object.rb +12 -0
  104. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/object.rb +0 -0
  105. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/rbx_lockable_object.rb +6 -0
  106. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/rbx_object.rb +0 -0
  107. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/truffleruby_object.rb +0 -0
  108. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization/volatile.rb +0 -0
  109. data/lib/{concurrent → concurrent-ruby/concurrent}/synchronization.rb +0 -0
  110. data/lib/{concurrent → concurrent-ruby/concurrent}/thread_safe/synchronized_delegator.rb +0 -0
  111. data/lib/{concurrent → concurrent-ruby/concurrent}/thread_safe/util/adder.rb +0 -0
  112. data/lib/{concurrent → concurrent-ruby/concurrent}/thread_safe/util/cheap_lockable.rb +0 -0
  113. data/lib/{concurrent → concurrent-ruby/concurrent}/thread_safe/util/data_structures.rb +26 -1
  114. data/lib/{concurrent → concurrent-ruby/concurrent}/thread_safe/util/power_of_two_tuple.rb +0 -0
  115. data/lib/{concurrent → concurrent-ruby/concurrent}/thread_safe/util/striped64.rb +1 -1
  116. data/lib/{concurrent → concurrent-ruby/concurrent}/thread_safe/util/volatile.rb +0 -0
  117. data/lib/{concurrent → concurrent-ruby/concurrent}/thread_safe/util/xor_shift_random.rb +0 -0
  118. data/lib/{concurrent → concurrent-ruby/concurrent}/thread_safe/util.rb +0 -0
  119. data/lib/{concurrent → concurrent-ruby/concurrent}/timer_task.rb +11 -34
  120. data/lib/{concurrent → concurrent-ruby/concurrent}/tuple.rb +0 -0
  121. data/lib/{concurrent → concurrent-ruby/concurrent}/tvar.rb +19 -56
  122. data/lib/{concurrent → concurrent-ruby/concurrent}/utility/engine.rb +0 -0
  123. data/lib/concurrent-ruby/concurrent/utility/monotonic_time.rb +90 -0
  124. data/lib/{concurrent → concurrent-ruby/concurrent}/utility/native_extension_loader.rb +0 -0
  125. data/lib/{concurrent → concurrent-ruby/concurrent}/utility/native_integer.rb +0 -0
  126. data/lib/{concurrent → concurrent-ruby/concurrent}/utility/processor_counter.rb +5 -33
  127. data/lib/concurrent-ruby/concurrent/version.rb +3 -0
  128. data/lib/concurrent-ruby/concurrent-ruby.rb +5 -0
  129. data/lib/{concurrent.rb → concurrent-ruby/concurrent.rb} +0 -0
  130. metadata +132 -132
  131. data/lib/concurrent/concurrent_ruby.jar +0 -0
  132. data/lib/concurrent/utility/at_exit.rb +0 -97
  133. data/lib/concurrent/utility/monotonic_time.rb +0 -58
  134. data/lib/concurrent/version.rb +0 -3
  135. data/lib/concurrent-ruby.rb +0 -1
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concurrent-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry D'Antonio
8
8
  - Petr Chalupa
9
9
  - The Ruby Concurrency Team
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-03-11 00:00:00.000000000 Z
13
+ date: 2022-03-22 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: |
16
16
  Modern concurrency tools including agents, futures, promises, thread pools, actors, supervisors, and more.
@@ -20,12 +20,12 @@ executables: []
20
20
  extensions: []
21
21
  extra_rdoc_files:
22
22
  - README.md
23
- - LICENSE.md
23
+ - LICENSE.txt
24
24
  - CHANGELOG.md
25
25
  files:
26
26
  - CHANGELOG.md
27
27
  - Gemfile
28
- - LICENSE.md
28
+ - LICENSE.txt
29
29
  - README.md
30
30
  - Rakefile
31
31
  - ext/concurrent-ruby/ConcurrentRubyService.java
@@ -43,150 +43,150 @@ files:
43
43
  - ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/LongAdder.java
44
44
  - ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166e/nounsafe/Striped64.java
45
45
  - ext/concurrent-ruby/com/concurrent_ruby/ext/jsr166y/ThreadLocalRandom.java
46
- - lib/concurrent-ruby.rb
47
- - lib/concurrent.rb
48
- - lib/concurrent/agent.rb
49
- - lib/concurrent/array.rb
50
- - lib/concurrent/async.rb
51
- - lib/concurrent/atom.rb
52
- - lib/concurrent/atomic/abstract_thread_local_var.rb
53
- - lib/concurrent/atomic/atomic_boolean.rb
54
- - lib/concurrent/atomic/atomic_fixnum.rb
55
- - lib/concurrent/atomic/atomic_markable_reference.rb
56
- - lib/concurrent/atomic/atomic_reference.rb
57
- - lib/concurrent/atomic/count_down_latch.rb
58
- - lib/concurrent/atomic/cyclic_barrier.rb
59
- - lib/concurrent/atomic/event.rb
60
- - lib/concurrent/atomic/java_count_down_latch.rb
61
- - lib/concurrent/atomic/java_thread_local_var.rb
62
- - lib/concurrent/atomic/mutex_atomic_boolean.rb
63
- - lib/concurrent/atomic/mutex_atomic_fixnum.rb
64
- - lib/concurrent/atomic/mutex_count_down_latch.rb
65
- - lib/concurrent/atomic/mutex_semaphore.rb
66
- - lib/concurrent/atomic/read_write_lock.rb
67
- - lib/concurrent/atomic/reentrant_read_write_lock.rb
68
- - lib/concurrent/atomic/ruby_thread_local_var.rb
69
- - lib/concurrent/atomic/semaphore.rb
70
- - lib/concurrent/atomic/thread_local_var.rb
71
- - lib/concurrent/atomic_reference/mutex_atomic.rb
72
- - lib/concurrent/atomic_reference/numeric_cas_wrapper.rb
73
- - lib/concurrent/atomics.rb
74
- - lib/concurrent/collection/copy_on_notify_observer_set.rb
75
- - lib/concurrent/collection/copy_on_write_observer_set.rb
76
- - lib/concurrent/collection/java_non_concurrent_priority_queue.rb
77
- - lib/concurrent/collection/lock_free_stack.rb
78
- - lib/concurrent/collection/map/atomic_reference_map_backend.rb
79
- - lib/concurrent/collection/map/mri_map_backend.rb
80
- - lib/concurrent/collection/map/non_concurrent_map_backend.rb
81
- - lib/concurrent/collection/map/synchronized_map_backend.rb
82
- - lib/concurrent/collection/non_concurrent_priority_queue.rb
83
- - lib/concurrent/collection/ruby_non_concurrent_priority_queue.rb
84
- - lib/concurrent/concern/deprecation.rb
85
- - lib/concurrent/concern/dereferenceable.rb
86
- - lib/concurrent/concern/logging.rb
87
- - lib/concurrent/concern/obligation.rb
88
- - lib/concurrent/concern/observable.rb
89
- - lib/concurrent/concurrent_ruby.jar
90
- - lib/concurrent/configuration.rb
91
- - lib/concurrent/constants.rb
92
- - lib/concurrent/dataflow.rb
93
- - lib/concurrent/delay.rb
94
- - lib/concurrent/errors.rb
95
- - lib/concurrent/exchanger.rb
96
- - lib/concurrent/executor/abstract_executor_service.rb
97
- - lib/concurrent/executor/cached_thread_pool.rb
98
- - lib/concurrent/executor/executor_service.rb
99
- - lib/concurrent/executor/fixed_thread_pool.rb
100
- - lib/concurrent/executor/immediate_executor.rb
101
- - lib/concurrent/executor/indirect_immediate_executor.rb
102
- - lib/concurrent/executor/java_executor_service.rb
103
- - lib/concurrent/executor/java_single_thread_executor.rb
104
- - lib/concurrent/executor/java_thread_pool_executor.rb
105
- - lib/concurrent/executor/ruby_executor_service.rb
106
- - lib/concurrent/executor/ruby_single_thread_executor.rb
107
- - lib/concurrent/executor/ruby_thread_pool_executor.rb
108
- - lib/concurrent/executor/safe_task_executor.rb
109
- - lib/concurrent/executor/serial_executor_service.rb
110
- - lib/concurrent/executor/serialized_execution.rb
111
- - lib/concurrent/executor/serialized_execution_delegator.rb
112
- - lib/concurrent/executor/simple_executor_service.rb
113
- - lib/concurrent/executor/single_thread_executor.rb
114
- - lib/concurrent/executor/thread_pool_executor.rb
115
- - lib/concurrent/executor/timer_set.rb
116
- - lib/concurrent/executors.rb
117
- - lib/concurrent/future.rb
118
- - lib/concurrent/hash.rb
119
- - lib/concurrent/immutable_struct.rb
120
- - lib/concurrent/ivar.rb
121
- - lib/concurrent/map.rb
122
- - lib/concurrent/maybe.rb
123
- - lib/concurrent/mutable_struct.rb
124
- - lib/concurrent/mvar.rb
125
- - lib/concurrent/options.rb
126
- - lib/concurrent/promise.rb
127
- - lib/concurrent/promises.rb
128
- - lib/concurrent/re_include.rb
129
- - lib/concurrent/scheduled_task.rb
130
- - lib/concurrent/set.rb
131
- - lib/concurrent/settable_struct.rb
132
- - lib/concurrent/synchronization.rb
133
- - lib/concurrent/synchronization/abstract_lockable_object.rb
134
- - lib/concurrent/synchronization/abstract_object.rb
135
- - lib/concurrent/synchronization/abstract_struct.rb
136
- - lib/concurrent/synchronization/condition.rb
137
- - lib/concurrent/synchronization/jruby_lockable_object.rb
138
- - lib/concurrent/synchronization/jruby_object.rb
139
- - lib/concurrent/synchronization/lock.rb
140
- - lib/concurrent/synchronization/lockable_object.rb
141
- - lib/concurrent/synchronization/mri_object.rb
142
- - lib/concurrent/synchronization/mutex_lockable_object.rb
143
- - lib/concurrent/synchronization/object.rb
144
- - lib/concurrent/synchronization/rbx_lockable_object.rb
145
- - lib/concurrent/synchronization/rbx_object.rb
146
- - lib/concurrent/synchronization/truffleruby_object.rb
147
- - lib/concurrent/synchronization/volatile.rb
148
- - lib/concurrent/thread_safe/synchronized_delegator.rb
149
- - lib/concurrent/thread_safe/util.rb
150
- - lib/concurrent/thread_safe/util/adder.rb
151
- - lib/concurrent/thread_safe/util/cheap_lockable.rb
152
- - lib/concurrent/thread_safe/util/data_structures.rb
153
- - lib/concurrent/thread_safe/util/power_of_two_tuple.rb
154
- - lib/concurrent/thread_safe/util/striped64.rb
155
- - lib/concurrent/thread_safe/util/volatile.rb
156
- - lib/concurrent/thread_safe/util/xor_shift_random.rb
157
- - lib/concurrent/timer_task.rb
158
- - lib/concurrent/tuple.rb
159
- - lib/concurrent/tvar.rb
160
- - lib/concurrent/utility/at_exit.rb
161
- - lib/concurrent/utility/engine.rb
162
- - lib/concurrent/utility/monotonic_time.rb
163
- - lib/concurrent/utility/native_extension_loader.rb
164
- - lib/concurrent/utility/native_integer.rb
165
- - lib/concurrent/utility/processor_counter.rb
166
- - lib/concurrent/version.rb
46
+ - lib/concurrent-ruby/concurrent-ruby.rb
47
+ - lib/concurrent-ruby/concurrent.rb
48
+ - lib/concurrent-ruby/concurrent/agent.rb
49
+ - lib/concurrent-ruby/concurrent/array.rb
50
+ - lib/concurrent-ruby/concurrent/async.rb
51
+ - lib/concurrent-ruby/concurrent/atom.rb
52
+ - lib/concurrent-ruby/concurrent/atomic/abstract_thread_local_var.rb
53
+ - lib/concurrent-ruby/concurrent/atomic/atomic_boolean.rb
54
+ - lib/concurrent-ruby/concurrent/atomic/atomic_fixnum.rb
55
+ - lib/concurrent-ruby/concurrent/atomic/atomic_markable_reference.rb
56
+ - lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb
57
+ - lib/concurrent-ruby/concurrent/atomic/count_down_latch.rb
58
+ - lib/concurrent-ruby/concurrent/atomic/cyclic_barrier.rb
59
+ - lib/concurrent-ruby/concurrent/atomic/event.rb
60
+ - lib/concurrent-ruby/concurrent/atomic/java_count_down_latch.rb
61
+ - lib/concurrent-ruby/concurrent/atomic/java_thread_local_var.rb
62
+ - lib/concurrent-ruby/concurrent/atomic/mutex_atomic_boolean.rb
63
+ - lib/concurrent-ruby/concurrent/atomic/mutex_atomic_fixnum.rb
64
+ - lib/concurrent-ruby/concurrent/atomic/mutex_count_down_latch.rb
65
+ - lib/concurrent-ruby/concurrent/atomic/mutex_semaphore.rb
66
+ - lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb
67
+ - lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb
68
+ - lib/concurrent-ruby/concurrent/atomic/ruby_thread_local_var.rb
69
+ - lib/concurrent-ruby/concurrent/atomic/semaphore.rb
70
+ - lib/concurrent-ruby/concurrent/atomic/thread_local_var.rb
71
+ - lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb
72
+ - lib/concurrent-ruby/concurrent/atomic_reference/numeric_cas_wrapper.rb
73
+ - lib/concurrent-ruby/concurrent/atomics.rb
74
+ - lib/concurrent-ruby/concurrent/collection/copy_on_notify_observer_set.rb
75
+ - lib/concurrent-ruby/concurrent/collection/copy_on_write_observer_set.rb
76
+ - lib/concurrent-ruby/concurrent/collection/java_non_concurrent_priority_queue.rb
77
+ - lib/concurrent-ruby/concurrent/collection/lock_free_stack.rb
78
+ - lib/concurrent-ruby/concurrent/collection/map/atomic_reference_map_backend.rb
79
+ - lib/concurrent-ruby/concurrent/collection/map/mri_map_backend.rb
80
+ - lib/concurrent-ruby/concurrent/collection/map/non_concurrent_map_backend.rb
81
+ - lib/concurrent-ruby/concurrent/collection/map/synchronized_map_backend.rb
82
+ - lib/concurrent-ruby/concurrent/collection/map/truffleruby_map_backend.rb
83
+ - lib/concurrent-ruby/concurrent/collection/non_concurrent_priority_queue.rb
84
+ - lib/concurrent-ruby/concurrent/collection/ruby_non_concurrent_priority_queue.rb
85
+ - lib/concurrent-ruby/concurrent/concern/deprecation.rb
86
+ - lib/concurrent-ruby/concurrent/concern/dereferenceable.rb
87
+ - lib/concurrent-ruby/concurrent/concern/logging.rb
88
+ - lib/concurrent-ruby/concurrent/concern/obligation.rb
89
+ - lib/concurrent-ruby/concurrent/concern/observable.rb
90
+ - lib/concurrent-ruby/concurrent/concurrent_ruby.jar
91
+ - lib/concurrent-ruby/concurrent/configuration.rb
92
+ - lib/concurrent-ruby/concurrent/constants.rb
93
+ - lib/concurrent-ruby/concurrent/dataflow.rb
94
+ - lib/concurrent-ruby/concurrent/delay.rb
95
+ - lib/concurrent-ruby/concurrent/errors.rb
96
+ - lib/concurrent-ruby/concurrent/exchanger.rb
97
+ - lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb
98
+ - lib/concurrent-ruby/concurrent/executor/cached_thread_pool.rb
99
+ - lib/concurrent-ruby/concurrent/executor/executor_service.rb
100
+ - lib/concurrent-ruby/concurrent/executor/fixed_thread_pool.rb
101
+ - lib/concurrent-ruby/concurrent/executor/immediate_executor.rb
102
+ - lib/concurrent-ruby/concurrent/executor/indirect_immediate_executor.rb
103
+ - lib/concurrent-ruby/concurrent/executor/java_executor_service.rb
104
+ - lib/concurrent-ruby/concurrent/executor/java_single_thread_executor.rb
105
+ - lib/concurrent-ruby/concurrent/executor/java_thread_pool_executor.rb
106
+ - lib/concurrent-ruby/concurrent/executor/ruby_executor_service.rb
107
+ - lib/concurrent-ruby/concurrent/executor/ruby_single_thread_executor.rb
108
+ - lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb
109
+ - lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb
110
+ - lib/concurrent-ruby/concurrent/executor/serial_executor_service.rb
111
+ - lib/concurrent-ruby/concurrent/executor/serialized_execution.rb
112
+ - lib/concurrent-ruby/concurrent/executor/serialized_execution_delegator.rb
113
+ - lib/concurrent-ruby/concurrent/executor/simple_executor_service.rb
114
+ - lib/concurrent-ruby/concurrent/executor/single_thread_executor.rb
115
+ - lib/concurrent-ruby/concurrent/executor/thread_pool_executor.rb
116
+ - lib/concurrent-ruby/concurrent/executor/timer_set.rb
117
+ - lib/concurrent-ruby/concurrent/executors.rb
118
+ - lib/concurrent-ruby/concurrent/future.rb
119
+ - lib/concurrent-ruby/concurrent/hash.rb
120
+ - lib/concurrent-ruby/concurrent/immutable_struct.rb
121
+ - lib/concurrent-ruby/concurrent/ivar.rb
122
+ - lib/concurrent-ruby/concurrent/map.rb
123
+ - lib/concurrent-ruby/concurrent/maybe.rb
124
+ - lib/concurrent-ruby/concurrent/mutable_struct.rb
125
+ - lib/concurrent-ruby/concurrent/mvar.rb
126
+ - lib/concurrent-ruby/concurrent/options.rb
127
+ - lib/concurrent-ruby/concurrent/promise.rb
128
+ - lib/concurrent-ruby/concurrent/promises.rb
129
+ - lib/concurrent-ruby/concurrent/re_include.rb
130
+ - lib/concurrent-ruby/concurrent/scheduled_task.rb
131
+ - lib/concurrent-ruby/concurrent/set.rb
132
+ - lib/concurrent-ruby/concurrent/settable_struct.rb
133
+ - lib/concurrent-ruby/concurrent/synchronization.rb
134
+ - lib/concurrent-ruby/concurrent/synchronization/abstract_lockable_object.rb
135
+ - lib/concurrent-ruby/concurrent/synchronization/abstract_object.rb
136
+ - lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb
137
+ - lib/concurrent-ruby/concurrent/synchronization/condition.rb
138
+ - lib/concurrent-ruby/concurrent/synchronization/jruby_lockable_object.rb
139
+ - lib/concurrent-ruby/concurrent/synchronization/jruby_object.rb
140
+ - lib/concurrent-ruby/concurrent/synchronization/lock.rb
141
+ - lib/concurrent-ruby/concurrent/synchronization/lockable_object.rb
142
+ - lib/concurrent-ruby/concurrent/synchronization/mri_object.rb
143
+ - lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb
144
+ - lib/concurrent-ruby/concurrent/synchronization/object.rb
145
+ - lib/concurrent-ruby/concurrent/synchronization/rbx_lockable_object.rb
146
+ - lib/concurrent-ruby/concurrent/synchronization/rbx_object.rb
147
+ - lib/concurrent-ruby/concurrent/synchronization/truffleruby_object.rb
148
+ - lib/concurrent-ruby/concurrent/synchronization/volatile.rb
149
+ - lib/concurrent-ruby/concurrent/thread_safe/synchronized_delegator.rb
150
+ - lib/concurrent-ruby/concurrent/thread_safe/util.rb
151
+ - lib/concurrent-ruby/concurrent/thread_safe/util/adder.rb
152
+ - lib/concurrent-ruby/concurrent/thread_safe/util/cheap_lockable.rb
153
+ - lib/concurrent-ruby/concurrent/thread_safe/util/data_structures.rb
154
+ - lib/concurrent-ruby/concurrent/thread_safe/util/power_of_two_tuple.rb
155
+ - lib/concurrent-ruby/concurrent/thread_safe/util/striped64.rb
156
+ - lib/concurrent-ruby/concurrent/thread_safe/util/volatile.rb
157
+ - lib/concurrent-ruby/concurrent/thread_safe/util/xor_shift_random.rb
158
+ - lib/concurrent-ruby/concurrent/timer_task.rb
159
+ - lib/concurrent-ruby/concurrent/tuple.rb
160
+ - lib/concurrent-ruby/concurrent/tvar.rb
161
+ - lib/concurrent-ruby/concurrent/utility/engine.rb
162
+ - lib/concurrent-ruby/concurrent/utility/monotonic_time.rb
163
+ - lib/concurrent-ruby/concurrent/utility/native_extension_loader.rb
164
+ - lib/concurrent-ruby/concurrent/utility/native_integer.rb
165
+ - lib/concurrent-ruby/concurrent/utility/processor_counter.rb
166
+ - lib/concurrent-ruby/concurrent/version.rb
167
167
  homepage: http://www.concurrent-ruby.com
168
168
  licenses:
169
169
  - MIT
170
170
  metadata:
171
171
  source_code_uri: https://github.com/ruby-concurrency/concurrent-ruby
172
- post_install_message:
172
+ changelog_uri: https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md
173
+ post_install_message:
173
174
  rdoc_options: []
174
175
  require_paths:
175
- - lib
176
+ - lib/concurrent-ruby
176
177
  required_ruby_version: !ruby/object:Gem::Requirement
177
178
  requirements:
178
179
  - - ">="
179
180
  - !ruby/object:Gem::Version
180
- version: 1.9.3
181
+ version: '2.2'
181
182
  required_rubygems_version: !ruby/object:Gem::Requirement
182
183
  requirements:
183
184
  - - ">="
184
185
  - !ruby/object:Gem::Version
185
186
  version: '0'
186
187
  requirements: []
187
- rubyforge_project:
188
- rubygems_version: 2.7.8
189
- signing_key:
188
+ rubygems_version: 3.3.4
189
+ signing_key:
190
190
  specification_version: 4
191
191
  summary: Modern concurrency tools for Ruby. Inspired by Erlang, Clojure, Scala, Haskell,
192
192
  F#, C#, Java, and classic concurrency patterns.
Binary file
@@ -1,97 +0,0 @@
1
- require 'logger'
2
- require 'concurrent/synchronization'
3
-
4
- module Concurrent
5
-
6
- # Provides ability to add and remove handlers to be run at `Kernel#at_exit`, order is undefined.
7
- # Each handler is executed at most once.
8
- #
9
- # @!visibility private
10
- class AtExitImplementation < Synchronization::LockableObject
11
- include Logger::Severity
12
-
13
- def initialize(*args)
14
- super()
15
- synchronize { ns_initialize(*args) }
16
- end
17
-
18
- # Add a handler to be run at `Kernel#at_exit`
19
- # @param [Object] handler_id optionally provide an id, if already present, handler is replaced
20
- # @yield the handler
21
- # @return id of the handler
22
- def add(handler_id = nil, &handler)
23
- id = handler_id || handler.object_id
24
- synchronize { @handlers[id] = handler }
25
- id
26
- end
27
-
28
- # Delete a handler by handler_id
29
- # @return [true, false]
30
- def delete(handler_id)
31
- !!synchronize { @handlers.delete handler_id }
32
- end
33
-
34
- # Is handler with handler_id rpesent?
35
- # @return [true, false]
36
- def handler?(handler_id)
37
- synchronize { @handlers.key? handler_id }
38
- end
39
-
40
- # @return copy of the handlers
41
- def handlers
42
- synchronize { @handlers }.clone
43
- end
44
-
45
- # install `Kernel#at_exit` callback to execute added handlers
46
- def install
47
- synchronize do
48
- @installed ||= begin
49
- at_exit { runner }
50
- true
51
- end
52
- self
53
- end
54
- end
55
-
56
- # Will it run during `Kernel#at_exit`
57
- def enabled?
58
- synchronize { @enabled }
59
- end
60
-
61
- # Configure if it runs during `Kernel#at_exit`
62
- def enabled=(value)
63
- synchronize { @enabled = value }
64
- end
65
-
66
- # run the handlers manually
67
- # @return ids of the handlers
68
- def run
69
- handlers, _ = synchronize { handlers, @handlers = @handlers, {} }
70
- handlers.each do |_, handler|
71
- begin
72
- handler.call
73
- rescue => error
74
- Concurrent.global_logger.call(ERROR, error)
75
- end
76
- end
77
- handlers.keys
78
- end
79
-
80
- private
81
-
82
- def ns_initialize(enabled = true)
83
- @handlers = {}
84
- @enabled = enabled
85
- end
86
-
87
- def runner
88
- run if synchronize { @enabled }
89
- end
90
- end
91
-
92
- private_constant :AtExitImplementation
93
-
94
- # @see AtExitImplementation
95
- # @!visibility private
96
- AtExit = AtExitImplementation.new.install
97
- end
@@ -1,58 +0,0 @@
1
- require 'concurrent/synchronization'
2
-
3
- module Concurrent
4
-
5
- class_definition = Class.new(Synchronization::LockableObject) do
6
- def initialize
7
- @last_time = Time.now.to_f
8
- super()
9
- end
10
-
11
- if defined?(Process::CLOCK_MONOTONIC)
12
- # @!visibility private
13
- def get_time
14
- Process.clock_gettime(Process::CLOCK_MONOTONIC)
15
- end
16
- elsif Concurrent.on_jruby?
17
- # @!visibility private
18
- def get_time
19
- java.lang.System.nanoTime() / 1_000_000_000.0
20
- end
21
- else
22
-
23
- # @!visibility private
24
- def get_time
25
- synchronize do
26
- now = Time.now.to_f
27
- if @last_time < now
28
- @last_time = now
29
- else # clock has moved back in time
30
- @last_time += 0.000_001
31
- end
32
- end
33
- end
34
-
35
- end
36
- end
37
-
38
- # Clock that cannot be set and represents monotonic time since
39
- # some unspecified starting point.
40
- #
41
- # @!visibility private
42
- GLOBAL_MONOTONIC_CLOCK = class_definition.new
43
- private_constant :GLOBAL_MONOTONIC_CLOCK
44
-
45
- # @!macro monotonic_get_time
46
- #
47
- # Returns the current time a tracked by the application monotonic clock.
48
- #
49
- # @return [Float] The current monotonic time since some unspecified
50
- # starting point
51
- #
52
- # @!macro monotonic_clock_warning
53
- def monotonic_time
54
- GLOBAL_MONOTONIC_CLOCK.get_time
55
- end
56
-
57
- module_function :monotonic_time
58
- end
@@ -1,3 +0,0 @@
1
- module Concurrent
2
- VERSION = '1.1.5'
3
- end
@@ -1 +0,0 @@
1
- require_relative "./concurrent"