packwerk 1.0.0

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.
Files changed (153) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  3. data/.github/probots.yml +2 -0
  4. data/.github/pull_request_template.md +27 -0
  5. data/.github/workflows/ci.yml +50 -0
  6. data/.gitignore +12 -0
  7. data/.rubocop.yml +46 -0
  8. data/.ruby-version +1 -0
  9. data/CODEOWNERS +1 -0
  10. data/CODE_OF_CONDUCT.md +76 -0
  11. data/CONTRIBUTING.md +17 -0
  12. data/Gemfile +22 -0
  13. data/Gemfile.lock +236 -0
  14. data/LICENSE.md +7 -0
  15. data/README.md +73 -0
  16. data/Rakefile +13 -0
  17. data/TROUBLESHOOT.md +67 -0
  18. data/USAGE.md +250 -0
  19. data/bin/console +15 -0
  20. data/bin/setup +8 -0
  21. data/dev.yml +32 -0
  22. data/docs/cohesion.png +0 -0
  23. data/exe/packwerk +6 -0
  24. data/lib/packwerk.rb +44 -0
  25. data/lib/packwerk/application_validator.rb +343 -0
  26. data/lib/packwerk/association_inspector.rb +44 -0
  27. data/lib/packwerk/checking_deprecated_references.rb +40 -0
  28. data/lib/packwerk/cli.rb +238 -0
  29. data/lib/packwerk/configuration.rb +82 -0
  30. data/lib/packwerk/const_node_inspector.rb +44 -0
  31. data/lib/packwerk/constant_discovery.rb +60 -0
  32. data/lib/packwerk/constant_name_inspector.rb +22 -0
  33. data/lib/packwerk/dependency_checker.rb +28 -0
  34. data/lib/packwerk/deprecated_references.rb +92 -0
  35. data/lib/packwerk/file_processor.rb +43 -0
  36. data/lib/packwerk/files_for_processing.rb +67 -0
  37. data/lib/packwerk/formatters/progress_formatter.rb +46 -0
  38. data/lib/packwerk/generators/application_validation.rb +62 -0
  39. data/lib/packwerk/generators/configuration_file.rb +69 -0
  40. data/lib/packwerk/generators/inflections_file.rb +43 -0
  41. data/lib/packwerk/generators/root_package.rb +37 -0
  42. data/lib/packwerk/generators/templates/inflections.yml +6 -0
  43. data/lib/packwerk/generators/templates/package.yml +17 -0
  44. data/lib/packwerk/generators/templates/packwerk +23 -0
  45. data/lib/packwerk/generators/templates/packwerk.yml.erb +23 -0
  46. data/lib/packwerk/generators/templates/packwerk_validator_test.rb +11 -0
  47. data/lib/packwerk/graph.rb +74 -0
  48. data/lib/packwerk/inflections/custom.rb +33 -0
  49. data/lib/packwerk/inflections/default.rb +73 -0
  50. data/lib/packwerk/inflector.rb +41 -0
  51. data/lib/packwerk/node.rb +259 -0
  52. data/lib/packwerk/node_processor.rb +49 -0
  53. data/lib/packwerk/node_visitor.rb +22 -0
  54. data/lib/packwerk/offense.rb +44 -0
  55. data/lib/packwerk/output_styles.rb +41 -0
  56. data/lib/packwerk/package.rb +56 -0
  57. data/lib/packwerk/package_set.rb +59 -0
  58. data/lib/packwerk/parsed_constant_definitions.rb +62 -0
  59. data/lib/packwerk/parsers.rb +23 -0
  60. data/lib/packwerk/parsers/erb.rb +66 -0
  61. data/lib/packwerk/parsers/factory.rb +34 -0
  62. data/lib/packwerk/parsers/ruby.rb +42 -0
  63. data/lib/packwerk/privacy_checker.rb +45 -0
  64. data/lib/packwerk/reference.rb +6 -0
  65. data/lib/packwerk/reference_extractor.rb +81 -0
  66. data/lib/packwerk/reference_lister.rb +23 -0
  67. data/lib/packwerk/run_context.rb +103 -0
  68. data/lib/packwerk/sanity_checker.rb +10 -0
  69. data/lib/packwerk/spring_command.rb +28 -0
  70. data/lib/packwerk/updating_deprecated_references.rb +51 -0
  71. data/lib/packwerk/version.rb +6 -0
  72. data/lib/packwerk/violation_type.rb +13 -0
  73. data/library.yml +6 -0
  74. data/packwerk.gemspec +58 -0
  75. data/service.yml +6 -0
  76. data/shipit.rubygems.yml +1 -0
  77. data/sorbet/config +2 -0
  78. data/sorbet/rbi/gems/actioncable@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +840 -0
  79. data/sorbet/rbi/gems/actionmailbox@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +571 -0
  80. data/sorbet/rbi/gems/actionmailer@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +568 -0
  81. data/sorbet/rbi/gems/actionpack@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +5216 -0
  82. data/sorbet/rbi/gems/actiontext@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +663 -0
  83. data/sorbet/rbi/gems/actionview@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +2504 -0
  84. data/sorbet/rbi/gems/activejob@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +635 -0
  85. data/sorbet/rbi/gems/activemodel@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +1201 -0
  86. data/sorbet/rbi/gems/activerecord@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +8011 -0
  87. data/sorbet/rbi/gems/activestorage@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +904 -0
  88. data/sorbet/rbi/gems/activesupport@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +3888 -0
  89. data/sorbet/rbi/gems/ast@2.4.1.rbi +54 -0
  90. data/sorbet/rbi/gems/better_html@1.0.15.rbi +317 -0
  91. data/sorbet/rbi/gems/builder@3.2.4.rbi +8 -0
  92. data/sorbet/rbi/gems/byebug@11.1.3.rbi +8 -0
  93. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  94. data/sorbet/rbi/gems/colorize@0.8.1.rbi +40 -0
  95. data/sorbet/rbi/gems/commander@4.5.2.rbi +8 -0
  96. data/sorbet/rbi/gems/concurrent-ruby@1.1.6.rbi +1966 -0
  97. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +26 -0
  98. data/sorbet/rbi/gems/crass@1.0.6.rbi +138 -0
  99. data/sorbet/rbi/gems/erubi@1.9.0.rbi +39 -0
  100. data/sorbet/rbi/gems/globalid@0.4.2.rbi +178 -0
  101. data/sorbet/rbi/gems/highline@2.0.3.rbi +8 -0
  102. data/sorbet/rbi/gems/html_tokenizer@0.0.7.rbi +46 -0
  103. data/sorbet/rbi/gems/i18n@1.8.2.rbi +633 -0
  104. data/sorbet/rbi/gems/jaro_winkler@1.5.4.rbi +8 -0
  105. data/sorbet/rbi/gems/loofah@2.5.0.rbi +272 -0
  106. data/sorbet/rbi/gems/m@1.5.1.rbi +108 -0
  107. data/sorbet/rbi/gems/mail@2.7.1.rbi +2490 -0
  108. data/sorbet/rbi/gems/marcel@0.3.3.rbi +30 -0
  109. data/sorbet/rbi/gems/method_source@1.0.0.rbi +76 -0
  110. data/sorbet/rbi/gems/mimemagic@0.3.5.rbi +47 -0
  111. data/sorbet/rbi/gems/mini_mime@1.0.2.rbi +71 -0
  112. data/sorbet/rbi/gems/mini_portile2@2.4.0.rbi +8 -0
  113. data/sorbet/rbi/gems/minitest@5.14.0.rbi +542 -0
  114. data/sorbet/rbi/gems/mocha@1.11.2.rbi +964 -0
  115. data/sorbet/rbi/gems/nio4r@2.5.2.rbi +89 -0
  116. data/sorbet/rbi/gems/nokogiri@1.10.9.rbi +1608 -0
  117. data/sorbet/rbi/gems/parallel@1.19.1.rbi +8 -0
  118. data/sorbet/rbi/gems/parlour@4.0.1.rbi +561 -0
  119. data/sorbet/rbi/gems/parser@2.7.1.4.rbi +1632 -0
  120. data/sorbet/rbi/gems/pry@0.13.1.rbi +8 -0
  121. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +335 -0
  122. data/sorbet/rbi/gems/rack@2.2.2.rbi +1730 -0
  123. data/sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi +123 -0
  124. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +213 -0
  125. data/sorbet/rbi/gems/rails@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +8 -0
  126. data/sorbet/rbi/gems/railties@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +869 -0
  127. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +155 -0
  128. data/sorbet/rbi/gems/rake@13.0.1.rbi +841 -0
  129. data/sorbet/rbi/gems/rexml@3.2.4.rbi +8 -0
  130. data/sorbet/rbi/gems/rubocop-performance@1.5.2.rbi +8 -0
  131. data/sorbet/rbi/gems/rubocop-shopify@1.0.2.rbi +8 -0
  132. data/sorbet/rbi/gems/rubocop-sorbet@0.3.7.rbi +8 -0
  133. data/sorbet/rbi/gems/rubocop@0.82.0.rbi +8 -0
  134. data/sorbet/rbi/gems/ruby-progressbar@1.10.1.rbi +8 -0
  135. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +168 -0
  136. data/sorbet/rbi/gems/spoom@1.0.4.rbi +418 -0
  137. data/sorbet/rbi/gems/spring@2.1.0.rbi +160 -0
  138. data/sorbet/rbi/gems/sprockets-rails@3.2.1.rbi +431 -0
  139. data/sorbet/rbi/gems/sprockets@4.0.0.rbi +1132 -0
  140. data/sorbet/rbi/gems/tapioca@0.4.5.rbi +518 -0
  141. data/sorbet/rbi/gems/thor@1.0.1.rbi +892 -0
  142. data/sorbet/rbi/gems/tzinfo@2.0.2.rbi +547 -0
  143. data/sorbet/rbi/gems/unicode-display_width@1.7.0.rbi +8 -0
  144. data/sorbet/rbi/gems/websocket-driver@0.7.1.rbi +438 -0
  145. data/sorbet/rbi/gems/websocket-extensions@0.1.4.rbi +71 -0
  146. data/sorbet/rbi/gems/zeitwerk@2.3.0.rbi +8 -0
  147. data/sorbet/tapioca/require.rb +25 -0
  148. data/static/packwerk-check-demo.png +0 -0
  149. data/static/packwerk_check.gif +0 -0
  150. data/static/packwerk_check_violation.gif +0 -0
  151. data/static/packwerk_update.gif +0 -0
  152. data/static/packwerk_validate.gif +0 -0
  153. metadata +341 -0
@@ -0,0 +1,1966 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `concurrent-ruby` gem.
3
+ # Please instead update this file by running `dev typecheck update`.
4
+
5
+ # typed: true
6
+
7
+ module Concurrent
8
+ extend(::Concurrent::Utility::EngineDetector)
9
+ extend(::Concurrent::Utility::NativeExtensionLoader)
10
+ extend(::Logger::Severity)
11
+ extend(::Concurrent::Concern::Logging)
12
+ extend(::Concurrent::Concern::Deprecation)
13
+
14
+
15
+ private
16
+
17
+ def abort_transaction; end
18
+ def atomically; end
19
+ def call_dataflow(method, executor, *inputs, &block); end
20
+ def dataflow(*inputs, &block); end
21
+ def dataflow!(*inputs, &block); end
22
+ def dataflow_with(executor, *inputs, &block); end
23
+ def dataflow_with!(executor, *inputs, &block); end
24
+ def leave_transaction; end
25
+ def monotonic_time; end
26
+
27
+ class << self
28
+ def abort_transaction; end
29
+ def atomically; end
30
+ def call_dataflow(method, executor, *inputs, &block); end
31
+ def create_simple_logger(level = T.unsafe(nil), output = T.unsafe(nil)); end
32
+ def create_stdlib_logger(level = T.unsafe(nil), output = T.unsafe(nil)); end
33
+ def dataflow(*inputs, &block); end
34
+ def dataflow!(*inputs, &block); end
35
+ def dataflow_with(executor, *inputs, &block); end
36
+ def dataflow_with!(executor, *inputs, &block); end
37
+ def disable_at_exit_handlers!; end
38
+ def executor(executor_identifier); end
39
+ def global_fast_executor; end
40
+ def global_immediate_executor; end
41
+ def global_io_executor; end
42
+ def global_logger; end
43
+ def global_logger=(value); end
44
+ def global_timer_set; end
45
+ def leave_transaction; end
46
+ def monotonic_time; end
47
+ def new_fast_executor(opts = T.unsafe(nil)); end
48
+ def new_io_executor(opts = T.unsafe(nil)); end
49
+ def physical_processor_count; end
50
+ def processor_count; end
51
+ def processor_counter; end
52
+ def use_simple_logger(level = T.unsafe(nil), output = T.unsafe(nil)); end
53
+ def use_stdlib_logger(level = T.unsafe(nil), output = T.unsafe(nil)); end
54
+ end
55
+ end
56
+
57
+ class Concurrent::AbstractExchanger < ::Concurrent::Synchronization::Object
58
+ def initialize; end
59
+
60
+ def exchange(value, timeout = T.unsafe(nil)); end
61
+ def exchange!(value, timeout = T.unsafe(nil)); end
62
+ def try_exchange(value, timeout = T.unsafe(nil)); end
63
+
64
+ private
65
+
66
+ def do_exchange(value, timeout); end
67
+ end
68
+
69
+ class Concurrent::AbstractExecutorService < ::Concurrent::Synchronization::LockableObject
70
+ include(::Logger::Severity)
71
+ include(::Concurrent::Concern::Logging)
72
+ include(::Concurrent::ExecutorService)
73
+ include(::Concurrent::Concern::Deprecation)
74
+
75
+ def initialize(opts = T.unsafe(nil), &block); end
76
+
77
+ def auto_terminate=(value); end
78
+ def auto_terminate?; end
79
+ def fallback_policy; end
80
+ def kill; end
81
+ def name; end
82
+ def running?; end
83
+ def shutdown; end
84
+ def shutdown?; end
85
+ def shuttingdown?; end
86
+ def to_s; end
87
+ def wait_for_termination(timeout = T.unsafe(nil)); end
88
+
89
+ private
90
+
91
+ def handle_fallback(*args); end
92
+ def ns_auto_terminate?; end
93
+ def ns_execute(*args, &task); end
94
+ def ns_kill_execution; end
95
+ def ns_shutdown_execution; end
96
+ end
97
+
98
+ Concurrent::AbstractExecutorService::FALLBACK_POLICIES = T.let(T.unsafe(nil), Array)
99
+
100
+ class Concurrent::AbstractThreadLocalVar
101
+ def initialize(default = T.unsafe(nil), &default_block); end
102
+
103
+ def bind(value, &block); end
104
+ def value; end
105
+ def value=(value); end
106
+
107
+ protected
108
+
109
+ def allocate_storage; end
110
+ def default; end
111
+ end
112
+
113
+ class Concurrent::Agent < ::Concurrent::Synchronization::LockableObject
114
+ include(::Concurrent::Concern::Observable)
115
+
116
+ def initialize(initial, opts = T.unsafe(nil)); end
117
+
118
+ def <<(action); end
119
+ def await; end
120
+ def await_for(timeout); end
121
+ def await_for!(timeout); end
122
+ def deref; end
123
+ def error; end
124
+ def error_mode; end
125
+ def failed?; end
126
+ def post(*args, &action); end
127
+ def reason; end
128
+ def restart(new_value, opts = T.unsafe(nil)); end
129
+ def send(*args, &action); end
130
+ def send!(*args, &action); end
131
+ def send_off(*args, &action); end
132
+ def send_off!(*args, &action); end
133
+ def send_via(executor, *args, &action); end
134
+ def send_via!(executor, *args, &action); end
135
+ def stopped?; end
136
+ def value; end
137
+ def wait(timeout = T.unsafe(nil)); end
138
+
139
+ private
140
+
141
+ def enqueue_action_job(action, args, executor); end
142
+ def enqueue_await_job(latch); end
143
+ def execute_next_job; end
144
+ def handle_error(error); end
145
+ def ns_enqueue_job(job, index = T.unsafe(nil)); end
146
+ def ns_find_last_job_for_thread; end
147
+ def ns_initialize(initial, opts); end
148
+ def ns_post_next_job; end
149
+ def ns_validate(value); end
150
+
151
+ class << self
152
+ def await(*agents); end
153
+ def await_for(timeout, *agents); end
154
+ def await_for!(timeout, *agents); end
155
+ end
156
+ end
157
+
158
+ class Concurrent::Agent::Error < ::StandardError
159
+ def initialize(message = T.unsafe(nil)); end
160
+ end
161
+
162
+ class Concurrent::Agent::ValidationError < ::Concurrent::Agent::Error
163
+ def initialize(message = T.unsafe(nil)); end
164
+ end
165
+
166
+ class Concurrent::Array < ::Array
167
+ end
168
+
169
+ module Concurrent::Async
170
+ def async; end
171
+ def await; end
172
+ def call; end
173
+ def cast; end
174
+ def init_synchronization; end
175
+
176
+ class << self
177
+ def included(base); end
178
+ def validate_argc(obj, method, *args); end
179
+ end
180
+ end
181
+
182
+ class Concurrent::Atom < ::Concurrent::Synchronization::Object
183
+ include(::Concurrent::Concern::Observable)
184
+
185
+ def initialize(value, opts = T.unsafe(nil)); end
186
+
187
+ def __initialize_atomic_fields__; end
188
+ def compare_and_set(old_value, new_value); end
189
+ def deref; end
190
+ def reset(new_value); end
191
+ def swap(*args); end
192
+ def value; end
193
+
194
+ private
195
+
196
+ def compare_and_set_value(expected, value); end
197
+ def swap_value(value); end
198
+ def update_value(&block); end
199
+ def valid?(new_value); end
200
+ def value=(value); end
201
+
202
+ class << self
203
+ def new(*args, &block); end
204
+ end
205
+ end
206
+
207
+ class Concurrent::AtomicBoolean < ::Concurrent::MutexAtomicBoolean
208
+ def inspect; end
209
+ def to_s; end
210
+ end
211
+
212
+ module Concurrent::AtomicDirectUpdate
213
+ def try_update; end
214
+ def try_update!; end
215
+ def update; end
216
+ end
217
+
218
+ class Concurrent::AtomicFixnum < ::Concurrent::MutexAtomicFixnum
219
+ def inspect; end
220
+ def to_s; end
221
+ end
222
+
223
+ class Concurrent::AtomicMarkableReference < ::Concurrent::Synchronization::Object
224
+ def initialize(value = T.unsafe(nil), mark = T.unsafe(nil)); end
225
+
226
+ def __initialize_atomic_fields__; end
227
+ def compare_and_set(expected_val, new_val, expected_mark, new_mark); end
228
+ def compare_and_swap(expected_val, new_val, expected_mark, new_mark); end
229
+ def get; end
230
+ def mark; end
231
+ def marked?; end
232
+ def set(new_val, new_mark); end
233
+ def try_update; end
234
+ def try_update!; end
235
+ def update; end
236
+ def value; end
237
+
238
+ private
239
+
240
+ def compare_and_set_reference(expected, value); end
241
+ def immutable_array(*args); end
242
+ def reference; end
243
+ def reference=(value); end
244
+ def swap_reference(value); end
245
+ def update_reference(&block); end
246
+
247
+ class << self
248
+ def new(*args, &block); end
249
+ end
250
+ end
251
+
252
+ module Concurrent::AtomicNumericCompareAndSetWrapper
253
+ def compare_and_set(old_value, new_value); end
254
+ end
255
+
256
+ class Concurrent::AtomicReference < ::Concurrent::MutexAtomicReference
257
+ def inspect; end
258
+ def to_s; end
259
+ end
260
+
261
+ class Concurrent::CachedThreadPool < ::Concurrent::ThreadPoolExecutor
262
+ def initialize(opts = T.unsafe(nil)); end
263
+
264
+
265
+ private
266
+
267
+ def ns_initialize(opts); end
268
+ end
269
+
270
+ class Concurrent::CancelledOperationError < ::Concurrent::Error
271
+ end
272
+
273
+ module Concurrent::Collection
274
+ end
275
+
276
+ class Concurrent::Collection::CopyOnNotifyObserverSet < ::Concurrent::Synchronization::LockableObject
277
+ def initialize; end
278
+
279
+ def add_observer(observer = T.unsafe(nil), func = T.unsafe(nil), &block); end
280
+ def count_observers; end
281
+ def delete_observer(observer); end
282
+ def delete_observers; end
283
+ def notify_and_delete_observers(*args, &block); end
284
+ def notify_observers(*args, &block); end
285
+
286
+ protected
287
+
288
+ def ns_initialize; end
289
+
290
+ private
291
+
292
+ def duplicate_and_clear_observers; end
293
+ def duplicate_observers; end
294
+ def notify_to(observers, *args); end
295
+ end
296
+
297
+ class Concurrent::Collection::CopyOnWriteObserverSet < ::Concurrent::Synchronization::LockableObject
298
+ def initialize; end
299
+
300
+ def add_observer(observer = T.unsafe(nil), func = T.unsafe(nil), &block); end
301
+ def count_observers; end
302
+ def delete_observer(observer); end
303
+ def delete_observers; end
304
+ def notify_and_delete_observers(*args, &block); end
305
+ def notify_observers(*args, &block); end
306
+
307
+ protected
308
+
309
+ def ns_initialize; end
310
+
311
+ private
312
+
313
+ def clear_observers_and_return_old; end
314
+ def notify_to(observers, *args); end
315
+ def observers; end
316
+ def observers=(new_set); end
317
+ end
318
+
319
+ Concurrent::Collection::MapImplementation = Concurrent::Collection::MriMapBackend
320
+
321
+ class Concurrent::Collection::MriMapBackend < ::Concurrent::Collection::NonConcurrentMapBackend
322
+ def initialize(options = T.unsafe(nil)); end
323
+
324
+ def []=(key, value); end
325
+ def clear; end
326
+ def compute(key); end
327
+ def compute_if_absent(key); end
328
+ def compute_if_present(key); end
329
+ def delete(key); end
330
+ def delete_pair(key, value); end
331
+ def get_and_set(key, value); end
332
+ def merge_pair(key, value); end
333
+ def replace_if_exists(key, new_value); end
334
+ def replace_pair(key, old_value, new_value); end
335
+ end
336
+
337
+ class Concurrent::Collection::NonConcurrentMapBackend
338
+ def initialize(options = T.unsafe(nil)); end
339
+
340
+ def [](key); end
341
+ def []=(key, value); end
342
+ def clear; end
343
+ def compute(key); end
344
+ def compute_if_absent(key); end
345
+ def compute_if_present(key); end
346
+ def delete(key); end
347
+ def delete_pair(key, value); end
348
+ def each_pair; end
349
+ def get_and_set(key, value); end
350
+ def get_or_default(key, default_value); end
351
+ def key?(key); end
352
+ def merge_pair(key, value); end
353
+ def replace_if_exists(key, new_value); end
354
+ def replace_pair(key, old_value, new_value); end
355
+ def size; end
356
+
357
+ private
358
+
359
+ def _get(key); end
360
+ def _set(key, value); end
361
+ def dupped_backend; end
362
+ def initialize_copy(other); end
363
+ def pair?(key, expected_value); end
364
+ def store_computed_value(key, new_value); end
365
+ end
366
+
367
+ class Concurrent::Collection::NonConcurrentPriorityQueue < ::Concurrent::Collection::RubyNonConcurrentPriorityQueue
368
+ def <<(item); end
369
+ def deq; end
370
+ def enq(item); end
371
+ def has_priority?(item); end
372
+ def shift; end
373
+ def size; end
374
+ end
375
+
376
+ class Concurrent::Collection::RubyNonConcurrentPriorityQueue
377
+ def initialize(opts = T.unsafe(nil)); end
378
+
379
+ def <<(item); end
380
+ def clear; end
381
+ def delete(item); end
382
+ def deq; end
383
+ def empty?; end
384
+ def enq(item); end
385
+ def has_priority?(item); end
386
+ def include?(item); end
387
+ def length; end
388
+ def peek; end
389
+ def pop; end
390
+ def push(item); end
391
+ def shift; end
392
+ def size; end
393
+
394
+ private
395
+
396
+ def ordered?(x, y); end
397
+ def sink(k); end
398
+ def swap(x, y); end
399
+ def swim(k); end
400
+
401
+ class << self
402
+ def from_list(list, opts = T.unsafe(nil)); end
403
+ end
404
+ end
405
+
406
+ module Concurrent::Concern
407
+ end
408
+
409
+ module Concurrent::Concern::Deprecation
410
+ include(::Logger::Severity)
411
+ include(::Concurrent::Concern::Logging)
412
+ extend(::Logger::Severity)
413
+ extend(::Concurrent::Concern::Logging)
414
+ extend(::Concurrent::Concern::Deprecation)
415
+
416
+ def deprecated(message, strip = T.unsafe(nil)); end
417
+ def deprecated_method(old_name, new_name); end
418
+ end
419
+
420
+ module Concurrent::Concern::Dereferenceable
421
+ def deref; end
422
+ def value; end
423
+
424
+ protected
425
+
426
+ def apply_deref_options(value); end
427
+ def ns_set_deref_options(opts); end
428
+ def set_deref_options(opts = T.unsafe(nil)); end
429
+ def value=(value); end
430
+ end
431
+
432
+ module Concurrent::Concern::Logging
433
+ include(::Logger::Severity)
434
+
435
+ def log(level, progname, message = T.unsafe(nil), &block); end
436
+ end
437
+
438
+ module Concurrent::Concern::Obligation
439
+ include(::Concurrent::Concern::Dereferenceable)
440
+
441
+ def complete?; end
442
+ def exception(*args); end
443
+ def fulfilled?; end
444
+ def incomplete?; end
445
+ def no_error!(timeout = T.unsafe(nil)); end
446
+ def pending?; end
447
+ def realized?; end
448
+ def reason; end
449
+ def rejected?; end
450
+ def state; end
451
+ def unscheduled?; end
452
+ def value(timeout = T.unsafe(nil)); end
453
+ def value!(timeout = T.unsafe(nil)); end
454
+ def wait(timeout = T.unsafe(nil)); end
455
+ def wait!(timeout = T.unsafe(nil)); end
456
+
457
+ protected
458
+
459
+ def compare_and_set_state(next_state, *expected_current); end
460
+ def event; end
461
+ def get_arguments_from(opts = T.unsafe(nil)); end
462
+ def if_state(*expected_states); end
463
+ def init_obligation; end
464
+ def ns_check_state?(expected); end
465
+ def ns_set_state(value); end
466
+ def set_state(success, value, reason); end
467
+ def state=(value); end
468
+ end
469
+
470
+ module Concurrent::Concern::Observable
471
+ def add_observer(observer = T.unsafe(nil), func = T.unsafe(nil), &block); end
472
+ def count_observers; end
473
+ def delete_observer(observer); end
474
+ def delete_observers; end
475
+ def with_observer(observer = T.unsafe(nil), func = T.unsafe(nil), &block); end
476
+
477
+ protected
478
+
479
+ def observers; end
480
+ def observers=(_); end
481
+ end
482
+
483
+ class Concurrent::ConcurrentUpdateError < ::ThreadError
484
+ end
485
+
486
+ Concurrent::ConcurrentUpdateError::CONC_UP_ERR_BACKTRACE = T.let(T.unsafe(nil), Array)
487
+
488
+ class Concurrent::ConfigurationError < ::Concurrent::Error
489
+ end
490
+
491
+ class Concurrent::CountDownLatch < ::Concurrent::MutexCountDownLatch
492
+ end
493
+
494
+ class Concurrent::CyclicBarrier < ::Concurrent::Synchronization::LockableObject
495
+ def initialize(parties, &block); end
496
+
497
+ def broken?; end
498
+ def number_waiting; end
499
+ def parties; end
500
+ def reset; end
501
+ def wait(timeout = T.unsafe(nil)); end
502
+
503
+ protected
504
+
505
+ def ns_generation_done(generation, status, continue = T.unsafe(nil)); end
506
+ def ns_initialize(parties, &block); end
507
+ def ns_next_generation; end
508
+ end
509
+
510
+ class Concurrent::Delay < ::Concurrent::Synchronization::LockableObject
511
+ include(::Concurrent::Concern::Dereferenceable)
512
+ include(::Concurrent::Concern::Obligation)
513
+
514
+ def initialize(opts = T.unsafe(nil), &block); end
515
+
516
+ def reconfigure(&block); end
517
+ def value(timeout = T.unsafe(nil)); end
518
+ def value!(timeout = T.unsafe(nil)); end
519
+ def wait(timeout = T.unsafe(nil)); end
520
+
521
+ protected
522
+
523
+ def ns_initialize(opts, &block); end
524
+
525
+ private
526
+
527
+ def execute_task_once; end
528
+ end
529
+
530
+ class Concurrent::DependencyCounter
531
+ def initialize(count, &block); end
532
+
533
+ def update(time, value, reason); end
534
+ end
535
+
536
+ class Concurrent::Error < ::StandardError
537
+ end
538
+
539
+ class Concurrent::Event < ::Concurrent::Synchronization::LockableObject
540
+ def initialize; end
541
+
542
+ def reset; end
543
+ def set; end
544
+ def set?; end
545
+ def try?; end
546
+ def wait(timeout = T.unsafe(nil)); end
547
+
548
+ protected
549
+
550
+ def ns_initialize; end
551
+ def ns_set; end
552
+ end
553
+
554
+ class Concurrent::Exchanger < ::Concurrent::RubyExchanger
555
+ end
556
+
557
+ module Concurrent::ExecutorService
558
+ include(::Logger::Severity)
559
+ include(::Concurrent::Concern::Logging)
560
+
561
+ def <<(task); end
562
+ def can_overflow?; end
563
+ def post(*args, &task); end
564
+ def serialized?; end
565
+ end
566
+
567
+ class Concurrent::FixedThreadPool < ::Concurrent::ThreadPoolExecutor
568
+ def initialize(num_threads, opts = T.unsafe(nil)); end
569
+ end
570
+
571
+ class Concurrent::Future < ::Concurrent::IVar
572
+ def initialize(opts = T.unsafe(nil), &block); end
573
+
574
+ def cancel; end
575
+ def cancelled?; end
576
+ def execute; end
577
+ def set(value = T.unsafe(nil), &block); end
578
+ def wait_or_cancel(timeout); end
579
+
580
+ protected
581
+
582
+ def ns_initialize(value, opts); end
583
+
584
+ class << self
585
+ def execute(opts = T.unsafe(nil), &block); end
586
+ end
587
+ end
588
+
589
+ class Concurrent::Hash < ::Hash
590
+ end
591
+
592
+ class Concurrent::IVar < ::Concurrent::Synchronization::LockableObject
593
+ include(::Concurrent::Concern::Dereferenceable)
594
+ include(::Concurrent::Concern::Obligation)
595
+ include(::Concurrent::Concern::Observable)
596
+
597
+ def initialize(value = T.unsafe(nil), opts = T.unsafe(nil), &block); end
598
+
599
+ def add_observer(observer = T.unsafe(nil), func = T.unsafe(nil), &block); end
600
+ def fail(reason = T.unsafe(nil)); end
601
+ def set(value = T.unsafe(nil)); end
602
+ def try_set(value = T.unsafe(nil), &block); end
603
+
604
+ protected
605
+
606
+ def check_for_block_or_value!(block_given, value); end
607
+ def complete(success, value, reason); end
608
+ def complete_without_notification(success, value, reason); end
609
+ def notify_observers(value, reason); end
610
+ def ns_complete_without_notification(success, value, reason); end
611
+ def ns_initialize(value, opts); end
612
+ def safe_execute(task, args = T.unsafe(nil)); end
613
+ end
614
+
615
+ class Concurrent::IllegalOperationError < ::Concurrent::Error
616
+ end
617
+
618
+ class Concurrent::ImmediateExecutor < ::Concurrent::AbstractExecutorService
619
+ include(::Concurrent::SerialExecutorService)
620
+
621
+ def initialize; end
622
+
623
+ def <<(task); end
624
+ def kill; end
625
+ def post(*args, &task); end
626
+ def running?; end
627
+ def shutdown; end
628
+ def shutdown?; end
629
+ def shuttingdown?; end
630
+ def wait_for_termination(timeout = T.unsafe(nil)); end
631
+ end
632
+
633
+ class Concurrent::ImmutabilityError < ::Concurrent::Error
634
+ end
635
+
636
+ module Concurrent::ImmutableStruct
637
+ include(::Concurrent::Synchronization::AbstractStruct)
638
+
639
+ def ==(other); end
640
+ def [](member); end
641
+ def each(&block); end
642
+ def each_pair(&block); end
643
+ def inspect; end
644
+ def merge(other, &block); end
645
+ def select(&block); end
646
+ def to_a; end
647
+ def to_h; end
648
+ def to_s; end
649
+ def values; end
650
+ def values_at(*indexes); end
651
+
652
+ private
653
+
654
+ def initialize_copy(original); end
655
+
656
+ class << self
657
+ def included(base); end
658
+ def new(*args, &block); end
659
+ end
660
+ end
661
+
662
+ class Concurrent::IndirectImmediateExecutor < ::Concurrent::ImmediateExecutor
663
+ def initialize; end
664
+
665
+ def post(*args, &task); end
666
+ end
667
+
668
+ class Concurrent::InitializationError < ::Concurrent::Error
669
+ end
670
+
671
+ class Concurrent::LifecycleError < ::Concurrent::Error
672
+ end
673
+
674
+ class Concurrent::LockFreeStack < ::Concurrent::Synchronization::Object
675
+ include(::Enumerable)
676
+
677
+ def initialize(head = T.unsafe(nil)); end
678
+
679
+ def __initialize_atomic_fields__; end
680
+ def clear; end
681
+ def clear_each(&block); end
682
+ def clear_if(head); end
683
+ def compare_and_clear(head); end
684
+ def compare_and_pop(head); end
685
+ def compare_and_push(head, value); end
686
+ def each(head = T.unsafe(nil)); end
687
+ def empty?(head = T.unsafe(nil)); end
688
+ def inspect; end
689
+ def peek; end
690
+ def pop; end
691
+ def push(value); end
692
+ def replace_if(head, new_head); end
693
+ def to_s; end
694
+
695
+ private
696
+
697
+ def compare_and_set_head(expected, value); end
698
+ def head; end
699
+ def head=(value); end
700
+ def swap_head(value); end
701
+ def update_head(&block); end
702
+
703
+ class << self
704
+ def new(*args, &block); end
705
+ def of1(value); end
706
+ def of2(value1, value2); end
707
+ end
708
+ end
709
+
710
+ Concurrent::LockFreeStack::EMPTY = T.let(T.unsafe(nil), Concurrent::LockFreeStack::Node)
711
+
712
+ class Concurrent::LockFreeStack::Node
713
+ def initialize(value, next_node); end
714
+
715
+ def next_node; end
716
+ def value; end
717
+ def value=(_); end
718
+
719
+ class << self
720
+ def [](*_); end
721
+ end
722
+ end
723
+
724
+ class Concurrent::MVar < ::Concurrent::Synchronization::Object
725
+ include(::Concurrent::Concern::Dereferenceable)
726
+
727
+ def initialize(value = T.unsafe(nil), opts = T.unsafe(nil)); end
728
+
729
+ def borrow(timeout = T.unsafe(nil)); end
730
+ def empty?; end
731
+ def full?; end
732
+ def modify(timeout = T.unsafe(nil)); end
733
+ def modify!; end
734
+ def put(value, timeout = T.unsafe(nil)); end
735
+ def set!(value); end
736
+ def take(timeout = T.unsafe(nil)); end
737
+ def try_put!(value); end
738
+ def try_take!; end
739
+
740
+ protected
741
+
742
+ def synchronize(&block); end
743
+
744
+ private
745
+
746
+ def unlocked_empty?; end
747
+ def unlocked_full?; end
748
+ def wait_for_empty(timeout); end
749
+ def wait_for_full(timeout); end
750
+ def wait_while(condition, timeout); end
751
+
752
+ class << self
753
+ def new(*args, &block); end
754
+ end
755
+ end
756
+
757
+ Concurrent::MVar::EMPTY = T.let(T.unsafe(nil), Object)
758
+
759
+ Concurrent::MVar::TIMEOUT = T.let(T.unsafe(nil), Object)
760
+
761
+ class Concurrent::Map < ::Concurrent::Collection::MriMapBackend
762
+ def initialize(options = T.unsafe(nil), &block); end
763
+
764
+ def [](key); end
765
+ def each; end
766
+ def each_key; end
767
+ def each_pair; end
768
+ def each_value; end
769
+ def empty?; end
770
+ def fetch(key, default_value = T.unsafe(nil)); end
771
+ def fetch_or_store(key, default_value = T.unsafe(nil)); end
772
+ def get(key); end
773
+ def inspect; end
774
+ def key(value); end
775
+ def keys; end
776
+ def marshal_dump; end
777
+ def marshal_load(hash); end
778
+ def put(key, value); end
779
+ def put_if_absent(key, value); end
780
+ def value?(value); end
781
+ def values; end
782
+
783
+ private
784
+
785
+ def initialize_copy(other); end
786
+ def populate_from(hash); end
787
+ def raise_fetch_no_key; end
788
+ def validate_options_hash!(options); end
789
+ end
790
+
791
+ class Concurrent::MaxRestartFrequencyError < ::Concurrent::Error
792
+ end
793
+
794
+ class Concurrent::Maybe < ::Concurrent::Synchronization::Object
795
+ include(::Comparable)
796
+
797
+ def initialize(just, nothing); end
798
+
799
+ def <=>(other); end
800
+ def fulfilled?; end
801
+ def just; end
802
+ def just?; end
803
+ def nothing; end
804
+ def nothing?; end
805
+ def or(other); end
806
+ def reason; end
807
+ def rejected?; end
808
+ def value; end
809
+
810
+ class << self
811
+ def from(*args); end
812
+ def just(value); end
813
+ def nothing(error = T.unsafe(nil)); end
814
+
815
+ private
816
+
817
+ def new(*args, &block); end
818
+ end
819
+ end
820
+
821
+ Concurrent::Maybe::NONE = T.let(T.unsafe(nil), Object)
822
+
823
+ class Concurrent::MultipleAssignmentError < ::Concurrent::Error
824
+ def initialize(message = T.unsafe(nil), inspection_data = T.unsafe(nil)); end
825
+
826
+ def inspect; end
827
+ def inspection_data; end
828
+ end
829
+
830
+ class Concurrent::MultipleErrors < ::Concurrent::Error
831
+ def initialize(errors, message = T.unsafe(nil)); end
832
+
833
+ def errors; end
834
+ end
835
+
836
+ module Concurrent::MutableStruct
837
+ include(::Concurrent::Synchronization::AbstractStruct)
838
+
839
+ def ==(other); end
840
+ def [](member); end
841
+ def []=(member, value); end
842
+ def each(&block); end
843
+ def each_pair(&block); end
844
+ def inspect; end
845
+ def merge(other, &block); end
846
+ def select(&block); end
847
+ def to_a; end
848
+ def to_h; end
849
+ def to_s; end
850
+ def values; end
851
+ def values_at(*indexes); end
852
+
853
+ private
854
+
855
+ def initialize_copy(original); end
856
+
857
+ class << self
858
+ def new(*args, &block); end
859
+ end
860
+ end
861
+
862
+ class Concurrent::MutexAtomicBoolean < ::Concurrent::Synchronization::LockableObject
863
+ def initialize(initial = T.unsafe(nil)); end
864
+
865
+ def false?; end
866
+ def make_false; end
867
+ def make_true; end
868
+ def true?; end
869
+ def value; end
870
+ def value=(value); end
871
+
872
+ protected
873
+
874
+ def ns_initialize(initial); end
875
+
876
+ private
877
+
878
+ def ns_make_value(value); end
879
+ end
880
+
881
+ class Concurrent::MutexAtomicFixnum < ::Concurrent::Synchronization::LockableObject
882
+ def initialize(initial = T.unsafe(nil)); end
883
+
884
+ def compare_and_set(expect, update); end
885
+ def decrement(delta = T.unsafe(nil)); end
886
+ def down(delta = T.unsafe(nil)); end
887
+ def increment(delta = T.unsafe(nil)); end
888
+ def up(delta = T.unsafe(nil)); end
889
+ def update; end
890
+ def value; end
891
+ def value=(value); end
892
+
893
+ protected
894
+
895
+ def ns_initialize(initial); end
896
+
897
+ private
898
+
899
+ def ns_set(value); end
900
+ end
901
+
902
+ class Concurrent::MutexAtomicReference < ::Concurrent::Synchronization::LockableObject
903
+ include(::Concurrent::AtomicDirectUpdate)
904
+ include(::Concurrent::AtomicNumericCompareAndSetWrapper)
905
+
906
+ def initialize(value = T.unsafe(nil)); end
907
+
908
+ def _compare_and_set(old_value, new_value); end
909
+ def compare_and_swap(old_value, new_value); end
910
+ def get; end
911
+ def get_and_set(new_value); end
912
+ def set(new_value); end
913
+ def swap(new_value); end
914
+ def value; end
915
+ def value=(new_value); end
916
+
917
+ protected
918
+
919
+ def ns_initialize(value); end
920
+ end
921
+
922
+ class Concurrent::MutexCountDownLatch < ::Concurrent::Synchronization::LockableObject
923
+ def initialize(count = T.unsafe(nil)); end
924
+
925
+ def count; end
926
+ def count_down; end
927
+ def wait(timeout = T.unsafe(nil)); end
928
+
929
+ protected
930
+
931
+ def ns_initialize(count); end
932
+ end
933
+
934
+ class Concurrent::MutexSemaphore < ::Concurrent::Synchronization::LockableObject
935
+ def initialize(count); end
936
+
937
+ def acquire(permits = T.unsafe(nil)); end
938
+ def available_permits; end
939
+ def drain_permits; end
940
+ def reduce_permits(reduction); end
941
+ def release(permits = T.unsafe(nil)); end
942
+ def try_acquire(permits = T.unsafe(nil), timeout = T.unsafe(nil)); end
943
+
944
+ protected
945
+
946
+ def ns_initialize(count); end
947
+
948
+ private
949
+
950
+ def try_acquire_now(permits); end
951
+ def try_acquire_timed(permits, timeout); end
952
+ end
953
+
954
+ Concurrent::NULL = T.let(T.unsafe(nil), Object)
955
+
956
+ Concurrent::NULL_LOGGER = T.let(T.unsafe(nil), Proc)
957
+
958
+ module Concurrent::Options
959
+ class << self
960
+ def executor(executor_identifier); end
961
+ def executor_from_options(opts = T.unsafe(nil)); end
962
+ end
963
+ end
964
+
965
+ class Concurrent::Promise < ::Concurrent::IVar
966
+ def initialize(opts = T.unsafe(nil), &block); end
967
+
968
+ def catch(&block); end
969
+ def execute; end
970
+ def fail(reason = T.unsafe(nil)); end
971
+ def flat_map(&block); end
972
+ def on_error(&block); end
973
+ def on_success(&block); end
974
+ def rescue(&block); end
975
+ def set(value = T.unsafe(nil), &block); end
976
+ def then(*args, &block); end
977
+ def zip(*others); end
978
+
979
+ protected
980
+
981
+ def complete(success, value, reason); end
982
+ def notify_child(child); end
983
+ def ns_initialize(value, opts); end
984
+ def on_fulfill(result); end
985
+ def on_reject(reason); end
986
+ def realize(task); end
987
+ def root?; end
988
+ def set_pending; end
989
+ def set_state!(success, value, reason); end
990
+ def synchronized_set_state!(success, value, reason); end
991
+
992
+ class << self
993
+ def aggregate(method, *promises); end
994
+ def all?(*promises); end
995
+ def any?(*promises); end
996
+ def execute(opts = T.unsafe(nil), &block); end
997
+ def fulfill(value, opts = T.unsafe(nil)); end
998
+ def reject(reason, opts = T.unsafe(nil)); end
999
+ def zip(*promises); end
1000
+ end
1001
+ end
1002
+
1003
+ class Concurrent::PromiseExecutionError < ::StandardError
1004
+ end
1005
+
1006
+ module Concurrent::Promises
1007
+ extend(::Concurrent::Promises::FactoryMethods::Configuration)
1008
+ extend(::Concurrent::Promises::FactoryMethods)
1009
+ end
1010
+
1011
+ class Concurrent::Promises::AbstractEventFuture < ::Concurrent::Synchronization::Object
1012
+ def initialize(promise, default_executor); end
1013
+
1014
+ def __initialize_atomic_fields__; end
1015
+ def add_callback_clear_delayed_node(node); end
1016
+ def add_callback_notify_blocked(promise, index); end
1017
+ def blocks; end
1018
+ def callbacks; end
1019
+ def chain(*args, &task); end
1020
+ def chain_on(executor, *args, &task); end
1021
+ def chain_resolvable(resolvable); end
1022
+ def default_executor; end
1023
+ def inspect; end
1024
+ def internal_state; end
1025
+ def on_resolution(*args, &callback); end
1026
+ def on_resolution!(*args, &callback); end
1027
+ def on_resolution_using(executor, *args, &callback); end
1028
+ def pending?; end
1029
+ def promise; end
1030
+ def resolve_with(state, raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end
1031
+ def resolved?; end
1032
+ def state; end
1033
+ def tangle(resolvable); end
1034
+ def to_s; end
1035
+ def touch; end
1036
+ def touched?; end
1037
+ def wait(timeout = T.unsafe(nil)); end
1038
+ def waiting_threads; end
1039
+ def with_default_executor(executor); end
1040
+ def with_hidden_resolvable; end
1041
+
1042
+ private
1043
+
1044
+ def add_callback(method, *args); end
1045
+ def async_callback_on_resolution(state, executor, args, callback); end
1046
+ def call_callback(method, state, args); end
1047
+ def call_callbacks(state); end
1048
+ def callback_clear_delayed_node(state, node); end
1049
+ def callback_notify_blocked(state, promise, index); end
1050
+ def compare_and_set_internal_state(expected, value); end
1051
+ def internal_state=(value); end
1052
+ def swap_internal_state(value); end
1053
+ def update_internal_state(&block); end
1054
+ def wait_until_resolved(timeout); end
1055
+ def with_async(executor, *args, &block); end
1056
+
1057
+ class << self
1058
+ def new(*args, &block); end
1059
+ end
1060
+ end
1061
+
1062
+ class Concurrent::Promises::Event < ::Concurrent::Promises::AbstractEventFuture
1063
+ def &(other); end
1064
+ def any(event_or_future); end
1065
+ def delay; end
1066
+ def schedule(intended_time); end
1067
+ def then(*args, &task); end
1068
+ def to_event; end
1069
+ def to_future; end
1070
+ def with_default_executor(executor); end
1071
+ def zip(other); end
1072
+ def |(event_or_future); end
1073
+
1074
+ private
1075
+
1076
+ def callback_on_resolution(state, args, callback); end
1077
+ def rejected_resolution(raise_on_reassign, state); end
1078
+ end
1079
+
1080
+ module Concurrent::Promises::FactoryMethods
1081
+ include(::Concurrent::Promises::FactoryMethods::Configuration)
1082
+ extend(::Concurrent::ReInclude)
1083
+ extend(::Concurrent::Promises::FactoryMethods)
1084
+ extend(::Concurrent::Promises::FactoryMethods::Configuration)
1085
+
1086
+ def any(*futures_and_or_events); end
1087
+ def any_event(*futures_and_or_events); end
1088
+ def any_event_on(default_executor, *futures_and_or_events); end
1089
+ def any_fulfilled_future(*futures_and_or_events); end
1090
+ def any_fulfilled_future_on(default_executor, *futures_and_or_events); end
1091
+ def any_resolved_future(*futures_and_or_events); end
1092
+ def any_resolved_future_on(default_executor, *futures_and_or_events); end
1093
+ def delay(*args, &task); end
1094
+ def delay_on(default_executor, *args, &task); end
1095
+ def fulfilled_future(value, default_executor = T.unsafe(nil)); end
1096
+ def future(*args, &task); end
1097
+ def future_on(default_executor, *args, &task); end
1098
+ def make_future(argument = T.unsafe(nil), default_executor = T.unsafe(nil)); end
1099
+ def rejected_future(reason, default_executor = T.unsafe(nil)); end
1100
+ def resolvable_event; end
1101
+ def resolvable_event_on(default_executor = T.unsafe(nil)); end
1102
+ def resolvable_future; end
1103
+ def resolvable_future_on(default_executor = T.unsafe(nil)); end
1104
+ def resolved_event(default_executor = T.unsafe(nil)); end
1105
+ def resolved_future(fulfilled, value, reason, default_executor = T.unsafe(nil)); end
1106
+ def schedule(intended_time, *args, &task); end
1107
+ def schedule_on(default_executor, intended_time, *args, &task); end
1108
+ def zip(*futures_and_or_events); end
1109
+ def zip_events(*futures_and_or_events); end
1110
+ def zip_events_on(default_executor, *futures_and_or_events); end
1111
+ def zip_futures(*futures_and_or_events); end
1112
+ def zip_futures_on(default_executor, *futures_and_or_events); end
1113
+ end
1114
+
1115
+ module Concurrent::Promises::FactoryMethods::Configuration
1116
+ def default_executor; end
1117
+ end
1118
+
1119
+ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture
1120
+ def &(other); end
1121
+ def any(event_or_future); end
1122
+ def apply(args, block); end
1123
+ def delay; end
1124
+ def exception(*args); end
1125
+ def flat(level = T.unsafe(nil)); end
1126
+ def flat_event; end
1127
+ def flat_future(level = T.unsafe(nil)); end
1128
+ def fulfilled?; end
1129
+ def inspect; end
1130
+ def on_fulfillment(*args, &callback); end
1131
+ def on_fulfillment!(*args, &callback); end
1132
+ def on_fulfillment_using(executor, *args, &callback); end
1133
+ def on_rejection(*args, &callback); end
1134
+ def on_rejection!(*args, &callback); end
1135
+ def on_rejection_using(executor, *args, &callback); end
1136
+ def reason(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil)); end
1137
+ def rejected?; end
1138
+ def rescue(*args, &task); end
1139
+ def rescue_on(executor, *args, &task); end
1140
+ def result(timeout = T.unsafe(nil)); end
1141
+ def run(run_test = T.unsafe(nil)); end
1142
+ def schedule(intended_time); end
1143
+ def then(*args, &task); end
1144
+ def then_on(executor, *args, &task); end
1145
+ def to_event; end
1146
+ def to_future; end
1147
+ def to_s; end
1148
+ def value(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil)); end
1149
+ def value!(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil)); end
1150
+ def wait!(timeout = T.unsafe(nil)); end
1151
+ def with_default_executor(executor); end
1152
+ def zip(other); end
1153
+ def |(event_or_future); end
1154
+
1155
+ private
1156
+
1157
+ def async_callback_on_fulfillment(state, executor, args, callback); end
1158
+ def async_callback_on_rejection(state, executor, args, callback); end
1159
+ def callback_on_fulfillment(state, args, callback); end
1160
+ def callback_on_rejection(state, args, callback); end
1161
+ def callback_on_resolution(state, args, callback); end
1162
+ def rejected_resolution(raise_on_reassign, state); end
1163
+ def run_test(v); end
1164
+ def wait_until_resolved!(timeout = T.unsafe(nil)); end
1165
+ end
1166
+
1167
+ module Concurrent::Promises::Resolvable
1168
+ end
1169
+
1170
+ class Concurrent::Promises::ResolvableEvent < ::Concurrent::Promises::Event
1171
+ include(::Concurrent::Promises::Resolvable)
1172
+
1173
+ def resolve(raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end
1174
+ def wait(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end
1175
+ def with_hidden_resolvable; end
1176
+ end
1177
+
1178
+ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future
1179
+ include(::Concurrent::Promises::Resolvable)
1180
+
1181
+ def evaluate_to(*args, &block); end
1182
+ def evaluate_to!(*args, &block); end
1183
+ def fulfill(value, raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end
1184
+ def reason(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end
1185
+ def reject(reason, raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end
1186
+ def resolve(fulfilled = T.unsafe(nil), value = T.unsafe(nil), reason = T.unsafe(nil), raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end
1187
+ def result(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end
1188
+ def value(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end
1189
+ def value!(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end
1190
+ def wait(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end
1191
+ def wait!(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end
1192
+ def with_hidden_resolvable; end
1193
+ end
1194
+
1195
+ module Concurrent::ReInclude
1196
+ def extended(base); end
1197
+ def include(*modules); end
1198
+ def included(base); end
1199
+ end
1200
+
1201
+ class Concurrent::ReadWriteLock < ::Concurrent::Synchronization::Object
1202
+ def initialize; end
1203
+
1204
+ def acquire_read_lock; end
1205
+ def acquire_write_lock; end
1206
+ def has_waiters?; end
1207
+ def release_read_lock; end
1208
+ def release_write_lock; end
1209
+ def with_read_lock; end
1210
+ def with_write_lock; end
1211
+ def write_locked?; end
1212
+
1213
+ private
1214
+
1215
+ def max_readers?(c = T.unsafe(nil)); end
1216
+ def max_writers?(c = T.unsafe(nil)); end
1217
+ def running_readers(c = T.unsafe(nil)); end
1218
+ def running_readers?(c = T.unsafe(nil)); end
1219
+ def running_writer?(c = T.unsafe(nil)); end
1220
+ def waiting_writer?(c = T.unsafe(nil)); end
1221
+ def waiting_writers(c = T.unsafe(nil)); end
1222
+
1223
+ class << self
1224
+ def new(*args, &block); end
1225
+ end
1226
+ end
1227
+
1228
+ Concurrent::ReadWriteLock::MAX_READERS = T.let(T.unsafe(nil), Integer)
1229
+
1230
+ Concurrent::ReadWriteLock::MAX_WRITERS = T.let(T.unsafe(nil), Integer)
1231
+
1232
+ Concurrent::ReadWriteLock::RUNNING_WRITER = T.let(T.unsafe(nil), Integer)
1233
+
1234
+ Concurrent::ReadWriteLock::WAITING_WRITER = T.let(T.unsafe(nil), Integer)
1235
+
1236
+ class Concurrent::ReentrantReadWriteLock < ::Concurrent::Synchronization::Object
1237
+ def initialize; end
1238
+
1239
+ def acquire_read_lock; end
1240
+ def acquire_write_lock; end
1241
+ def release_read_lock; end
1242
+ def release_write_lock; end
1243
+ def try_read_lock; end
1244
+ def try_write_lock; end
1245
+ def with_read_lock; end
1246
+ def with_write_lock; end
1247
+
1248
+ private
1249
+
1250
+ def max_readers?(c = T.unsafe(nil)); end
1251
+ def max_writers?(c = T.unsafe(nil)); end
1252
+ def running_readers(c = T.unsafe(nil)); end
1253
+ def running_readers?(c = T.unsafe(nil)); end
1254
+ def running_writer?(c = T.unsafe(nil)); end
1255
+ def waiting_or_running_writer?(c = T.unsafe(nil)); end
1256
+ def waiting_writers(c = T.unsafe(nil)); end
1257
+
1258
+ class << self
1259
+ def new(*args, &block); end
1260
+ end
1261
+ end
1262
+
1263
+ Concurrent::ReentrantReadWriteLock::MAX_READERS = T.let(T.unsafe(nil), Integer)
1264
+
1265
+ Concurrent::ReentrantReadWriteLock::MAX_WRITERS = T.let(T.unsafe(nil), Integer)
1266
+
1267
+ Concurrent::ReentrantReadWriteLock::READER_BITS = T.let(T.unsafe(nil), Integer)
1268
+
1269
+ Concurrent::ReentrantReadWriteLock::READ_LOCK_MASK = T.let(T.unsafe(nil), Integer)
1270
+
1271
+ Concurrent::ReentrantReadWriteLock::RUNNING_WRITER = T.let(T.unsafe(nil), Integer)
1272
+
1273
+ Concurrent::ReentrantReadWriteLock::WAITING_WRITER = T.let(T.unsafe(nil), Integer)
1274
+
1275
+ Concurrent::ReentrantReadWriteLock::WRITER_BITS = T.let(T.unsafe(nil), Integer)
1276
+
1277
+ Concurrent::ReentrantReadWriteLock::WRITE_LOCK_HELD = T.let(T.unsafe(nil), Integer)
1278
+
1279
+ Concurrent::ReentrantReadWriteLock::WRITE_LOCK_MASK = T.let(T.unsafe(nil), Integer)
1280
+
1281
+ class Concurrent::RejectedExecutionError < ::Concurrent::Error
1282
+ end
1283
+
1284
+ class Concurrent::ResourceLimitError < ::Concurrent::Error
1285
+ end
1286
+
1287
+ class Concurrent::RubyExchanger < ::Concurrent::AbstractExchanger
1288
+ def initialize; end
1289
+
1290
+ def __initialize_atomic_fields__; end
1291
+ def compare_and_set_slot(expected, value); end
1292
+ def slot; end
1293
+ def slot=(value); end
1294
+ def swap_slot(value); end
1295
+ def update_slot(&block); end
1296
+
1297
+ private
1298
+
1299
+ def do_exchange(value, timeout); end
1300
+
1301
+ class << self
1302
+ def new(*args, &block); end
1303
+ end
1304
+ end
1305
+
1306
+ class Concurrent::RubyExecutorService < ::Concurrent::AbstractExecutorService
1307
+ def initialize(*args, &block); end
1308
+
1309
+ def kill; end
1310
+ def post(*args, &task); end
1311
+ def shutdown; end
1312
+ def wait_for_termination(timeout = T.unsafe(nil)); end
1313
+
1314
+ private
1315
+
1316
+ def ns_running?; end
1317
+ def ns_shutdown?; end
1318
+ def ns_shutdown_execution; end
1319
+ def ns_shuttingdown?; end
1320
+ def stop_event; end
1321
+ def stopped_event; end
1322
+ end
1323
+
1324
+ class Concurrent::RubySingleThreadExecutor < ::Concurrent::RubyThreadPoolExecutor
1325
+ def initialize(opts = T.unsafe(nil)); end
1326
+ end
1327
+
1328
+ class Concurrent::RubyThreadLocalVar < ::Concurrent::AbstractThreadLocalVar
1329
+ def value; end
1330
+ def value=(value); end
1331
+
1332
+ protected
1333
+
1334
+ def allocate_storage; end
1335
+
1336
+ private
1337
+
1338
+ def get_default; end
1339
+ def get_threadlocal_array(thread = T.unsafe(nil)); end
1340
+ def set_threadlocal_array(array, thread = T.unsafe(nil)); end
1341
+ def value_for(thread); end
1342
+
1343
+ class << self
1344
+ def thread_finalizer(id); end
1345
+ def thread_local_finalizer(index); end
1346
+ end
1347
+ end
1348
+
1349
+ class Concurrent::RubyThreadPoolExecutor < ::Concurrent::RubyExecutorService
1350
+ def initialize(opts = T.unsafe(nil)); end
1351
+
1352
+ def can_overflow?; end
1353
+ def completed_task_count; end
1354
+ def idletime; end
1355
+ def largest_length; end
1356
+ def length; end
1357
+ def max_length; end
1358
+ def max_queue; end
1359
+ def min_length; end
1360
+ def queue_length; end
1361
+ def ready_worker(worker); end
1362
+ def remaining_capacity; end
1363
+ def remove_busy_worker(worker); end
1364
+ def scheduled_task_count; end
1365
+ def worker_died(worker); end
1366
+ def worker_not_old_enough(worker); end
1367
+ def worker_task_completed; end
1368
+
1369
+ private
1370
+
1371
+ def ns_add_busy_worker; end
1372
+ def ns_assign_worker(*args, &task); end
1373
+ def ns_enqueue(*args, &task); end
1374
+ def ns_execute(*args, &task); end
1375
+ def ns_initialize(opts); end
1376
+ def ns_kill_execution; end
1377
+ def ns_limited_queue?; end
1378
+ def ns_prune_pool; end
1379
+ def ns_ready_worker(worker, success = T.unsafe(nil)); end
1380
+ def ns_remove_busy_worker(worker); end
1381
+ def ns_reset_if_forked; end
1382
+ def ns_shutdown_execution; end
1383
+ def ns_worker_died(worker); end
1384
+ def ns_worker_not_old_enough(worker); end
1385
+ end
1386
+
1387
+ Concurrent::RubyThreadPoolExecutor::DEFAULT_MAX_POOL_SIZE = T.let(T.unsafe(nil), Integer)
1388
+
1389
+ Concurrent::RubyThreadPoolExecutor::DEFAULT_MAX_QUEUE_SIZE = T.let(T.unsafe(nil), Integer)
1390
+
1391
+ Concurrent::RubyThreadPoolExecutor::DEFAULT_MIN_POOL_SIZE = T.let(T.unsafe(nil), Integer)
1392
+
1393
+ Concurrent::RubyThreadPoolExecutor::DEFAULT_THREAD_IDLETIMEOUT = T.let(T.unsafe(nil), Integer)
1394
+
1395
+ class Concurrent::SafeTaskExecutor < ::Concurrent::Synchronization::LockableObject
1396
+ def initialize(task, opts = T.unsafe(nil)); end
1397
+
1398
+ def execute(*args); end
1399
+ end
1400
+
1401
+ class Concurrent::ScheduledTask < ::Concurrent::IVar
1402
+ include(::Comparable)
1403
+
1404
+ def initialize(delay, opts = T.unsafe(nil), &task); end
1405
+
1406
+ def <=>(other); end
1407
+ def cancel; end
1408
+ def cancelled?; end
1409
+ def execute; end
1410
+ def executor; end
1411
+ def initial_delay; end
1412
+ def process_task; end
1413
+ def processing?; end
1414
+ def reschedule(delay); end
1415
+ def reset; end
1416
+ def schedule_time; end
1417
+
1418
+ protected
1419
+
1420
+ def ns_reschedule(delay); end
1421
+ def ns_schedule(delay); end
1422
+
1423
+ class << self
1424
+ def execute(delay, opts = T.unsafe(nil), &task); end
1425
+ end
1426
+ end
1427
+
1428
+ class Concurrent::Semaphore < ::Concurrent::MutexSemaphore
1429
+ end
1430
+
1431
+ module Concurrent::SerialExecutorService
1432
+ include(::Logger::Severity)
1433
+ include(::Concurrent::Concern::Logging)
1434
+ include(::Concurrent::ExecutorService)
1435
+
1436
+ def serialized?; end
1437
+ end
1438
+
1439
+ class Concurrent::SerializedExecution < ::Concurrent::Synchronization::LockableObject
1440
+ include(::Logger::Severity)
1441
+ include(::Concurrent::Concern::Logging)
1442
+
1443
+ def initialize; end
1444
+
1445
+ def post(executor, *args, &task); end
1446
+ def posts(posts); end
1447
+
1448
+ private
1449
+
1450
+ def call_job(job); end
1451
+ def ns_initialize; end
1452
+ def work(job); end
1453
+ end
1454
+
1455
+ class Concurrent::SerializedExecution::Job < ::Struct
1456
+ def args; end
1457
+ def args=(_); end
1458
+ def block; end
1459
+ def block=(_); end
1460
+ def call; end
1461
+ def executor; end
1462
+ def executor=(_); end
1463
+
1464
+ class << self
1465
+ def [](*_); end
1466
+ def inspect; end
1467
+ def members; end
1468
+ def new(*_); end
1469
+ end
1470
+ end
1471
+
1472
+ class Concurrent::SerializedExecutionDelegator < ::SimpleDelegator
1473
+ include(::Logger::Severity)
1474
+ include(::Concurrent::Concern::Logging)
1475
+ include(::Concurrent::ExecutorService)
1476
+ include(::Concurrent::SerialExecutorService)
1477
+
1478
+ def initialize(executor); end
1479
+
1480
+ def post(*args, &task); end
1481
+ end
1482
+
1483
+ class Concurrent::Set < ::Set
1484
+ end
1485
+
1486
+ module Concurrent::SettableStruct
1487
+ include(::Concurrent::Synchronization::AbstractStruct)
1488
+
1489
+ def ==(other); end
1490
+ def [](member); end
1491
+ def []=(member, value); end
1492
+ def each(&block); end
1493
+ def each_pair(&block); end
1494
+ def inspect; end
1495
+ def merge(other, &block); end
1496
+ def select(&block); end
1497
+ def to_a; end
1498
+ def to_h; end
1499
+ def to_s; end
1500
+ def values; end
1501
+ def values_at(*indexes); end
1502
+
1503
+ private
1504
+
1505
+ def initialize_copy(original); end
1506
+
1507
+ class << self
1508
+ def new(*args, &block); end
1509
+ end
1510
+ end
1511
+
1512
+ class Concurrent::SimpleExecutorService < ::Concurrent::RubyExecutorService
1513
+ def <<(task); end
1514
+ def kill; end
1515
+ def post(*args, &task); end
1516
+ def running?; end
1517
+ def shutdown; end
1518
+ def shutdown?; end
1519
+ def shuttingdown?; end
1520
+ def wait_for_termination(timeout = T.unsafe(nil)); end
1521
+
1522
+ private
1523
+
1524
+ def ns_initialize(*args); end
1525
+
1526
+ class << self
1527
+ def <<(task); end
1528
+ def post(*args); end
1529
+ end
1530
+ end
1531
+
1532
+ class Concurrent::SingleThreadExecutor < ::Concurrent::RubySingleThreadExecutor
1533
+ end
1534
+
1535
+ module Concurrent::Synchronization
1536
+ end
1537
+
1538
+ class Concurrent::Synchronization::AbstractLockableObject < ::Concurrent::Synchronization::Object
1539
+
1540
+ protected
1541
+
1542
+ def ns_broadcast; end
1543
+ def ns_signal; end
1544
+ def ns_wait(timeout = T.unsafe(nil)); end
1545
+ def ns_wait_until(timeout = T.unsafe(nil), &condition); end
1546
+ def synchronize; end
1547
+ end
1548
+
1549
+ class Concurrent::Synchronization::AbstractObject
1550
+ def initialize; end
1551
+
1552
+ def full_memory_barrier; end
1553
+
1554
+ class << self
1555
+ def attr_volatile(*names); end
1556
+ end
1557
+ end
1558
+
1559
+ module Concurrent::Synchronization::AbstractStruct
1560
+ def initialize(*values); end
1561
+
1562
+ def length; end
1563
+ def members; end
1564
+ def size; end
1565
+
1566
+ protected
1567
+
1568
+ def ns_each; end
1569
+ def ns_each_pair; end
1570
+ def ns_equality(other); end
1571
+ def ns_get(member); end
1572
+ def ns_initialize_copy; end
1573
+ def ns_inspect; end
1574
+ def ns_merge(other, &block); end
1575
+ def ns_select; end
1576
+ def ns_to_h; end
1577
+ def ns_values; end
1578
+ def ns_values_at(indexes); end
1579
+ def pr_underscore(clazz); end
1580
+
1581
+ class << self
1582
+ def define_struct_class(parent, base, name, members, &block); end
1583
+ end
1584
+ end
1585
+
1586
+ class Concurrent::Synchronization::Condition < ::Concurrent::Synchronization::LockableObject
1587
+ def initialize(lock); end
1588
+
1589
+ def broadcast; end
1590
+ def ns_broadcast; end
1591
+ def ns_signal; end
1592
+ def ns_wait(timeout = T.unsafe(nil)); end
1593
+ def ns_wait_until(timeout = T.unsafe(nil), &condition); end
1594
+ def signal; end
1595
+ def wait(timeout = T.unsafe(nil)); end
1596
+ def wait_until(timeout = T.unsafe(nil), &condition); end
1597
+
1598
+ class << self
1599
+ def private_new(*args, &block); end
1600
+ end
1601
+ end
1602
+
1603
+ module Concurrent::Synchronization::ConditionSignalling
1604
+
1605
+ protected
1606
+
1607
+ def ns_broadcast; end
1608
+ def ns_signal; end
1609
+ end
1610
+
1611
+ class Concurrent::Synchronization::Lock < ::Concurrent::Synchronization::LockableObject
1612
+ def broadcast; end
1613
+ def signal; end
1614
+ def wait(timeout = T.unsafe(nil)); end
1615
+ def wait_until(timeout = T.unsafe(nil), &condition); end
1616
+ end
1617
+
1618
+ class Concurrent::Synchronization::LockableObject < ::Concurrent::Synchronization::MutexLockableObject
1619
+ def new_condition; end
1620
+ end
1621
+
1622
+ class Concurrent::Synchronization::MonitorLockableObject < ::Concurrent::Synchronization::AbstractLockableObject
1623
+ include(::Concurrent::Synchronization::ConditionSignalling)
1624
+
1625
+ def initialize(*defaults); end
1626
+
1627
+
1628
+ protected
1629
+
1630
+ def ns_wait(timeout = T.unsafe(nil)); end
1631
+ def synchronize; end
1632
+
1633
+ class << self
1634
+ def new(*args, &block); end
1635
+ end
1636
+ end
1637
+
1638
+ module Concurrent::Synchronization::MriAttrVolatile
1639
+ mixes_in_class_methods(::Concurrent::Synchronization::MriAttrVolatile::ClassMethods)
1640
+
1641
+ def full_memory_barrier; end
1642
+
1643
+ class << self
1644
+ def included(base); end
1645
+ end
1646
+ end
1647
+
1648
+ module Concurrent::Synchronization::MriAttrVolatile::ClassMethods
1649
+ def attr_volatile(*names); end
1650
+ end
1651
+
1652
+ class Concurrent::Synchronization::MriObject < ::Concurrent::Synchronization::AbstractObject
1653
+ include(::Concurrent::Synchronization::MriAttrVolatile)
1654
+ extend(::Concurrent::Synchronization::MriAttrVolatile::ClassMethods)
1655
+
1656
+ def initialize; end
1657
+ end
1658
+
1659
+ class Concurrent::Synchronization::MutexLockableObject < ::Concurrent::Synchronization::AbstractLockableObject
1660
+ include(::Concurrent::Synchronization::ConditionSignalling)
1661
+
1662
+ def initialize(*defaults); end
1663
+
1664
+
1665
+ protected
1666
+
1667
+ def ns_wait(timeout = T.unsafe(nil)); end
1668
+ def synchronize; end
1669
+
1670
+ class << self
1671
+ def new(*args, &block); end
1672
+ end
1673
+ end
1674
+
1675
+ class Concurrent::Synchronization::Object < ::Concurrent::Synchronization::MriObject
1676
+ def initialize; end
1677
+
1678
+
1679
+ private
1680
+
1681
+ def __initialize_atomic_fields__; end
1682
+
1683
+ class << self
1684
+ def atomic_attribute?(name); end
1685
+ def atomic_attributes(inherited = T.unsafe(nil)); end
1686
+ def attr_atomic(*names); end
1687
+ def ensure_safe_initialization_when_final_fields_are_present; end
1688
+ def safe_initialization!; end
1689
+ def safe_initialization?; end
1690
+
1691
+ private
1692
+
1693
+ def define_initialize_atomic_fields; end
1694
+ end
1695
+ end
1696
+
1697
+ module Concurrent::Synchronization::RbxAttrVolatile
1698
+ mixes_in_class_methods(::Concurrent::Synchronization::RbxAttrVolatile::ClassMethods)
1699
+
1700
+ def full_memory_barrier; end
1701
+
1702
+ class << self
1703
+ def included(base); end
1704
+ end
1705
+ end
1706
+
1707
+ module Concurrent::Synchronization::RbxAttrVolatile::ClassMethods
1708
+ def attr_volatile(*names); end
1709
+ end
1710
+
1711
+ class Concurrent::Synchronization::RbxLockableObject < ::Concurrent::Synchronization::AbstractLockableObject
1712
+ def initialize(*defaults); end
1713
+
1714
+
1715
+ protected
1716
+
1717
+ def ns_broadcast; end
1718
+ def ns_signal; end
1719
+ def ns_wait(timeout = T.unsafe(nil)); end
1720
+ def synchronize(&block); end
1721
+
1722
+ class << self
1723
+ def new(*args, &block); end
1724
+ end
1725
+ end
1726
+
1727
+ class Concurrent::Synchronization::RbxObject < ::Concurrent::Synchronization::AbstractObject
1728
+ include(::Concurrent::Synchronization::RbxAttrVolatile)
1729
+ extend(::Concurrent::Synchronization::RbxAttrVolatile::ClassMethods)
1730
+
1731
+ def initialize; end
1732
+ end
1733
+
1734
+ module Concurrent::Synchronization::TruffleRubyAttrVolatile
1735
+ mixes_in_class_methods(::Concurrent::Synchronization::TruffleRubyAttrVolatile::ClassMethods)
1736
+
1737
+ def full_memory_barrier; end
1738
+
1739
+ class << self
1740
+ def included(base); end
1741
+ end
1742
+ end
1743
+
1744
+ module Concurrent::Synchronization::TruffleRubyAttrVolatile::ClassMethods
1745
+ def attr_volatile(*names); end
1746
+ end
1747
+
1748
+ class Concurrent::Synchronization::TruffleRubyObject < ::Concurrent::Synchronization::AbstractObject
1749
+ include(::Concurrent::Synchronization::TruffleRubyAttrVolatile)
1750
+ extend(::Concurrent::Synchronization::TruffleRubyAttrVolatile::ClassMethods)
1751
+
1752
+ def initialize; end
1753
+ end
1754
+
1755
+ Concurrent::Synchronization::Volatile = Concurrent::Synchronization::MriAttrVolatile
1756
+
1757
+ class Concurrent::SynchronizedDelegator < ::SimpleDelegator
1758
+ def initialize(obj); end
1759
+
1760
+ def method_missing(method, *args, &block); end
1761
+ def setup; end
1762
+ def teardown; end
1763
+ end
1764
+
1765
+ class Concurrent::TVar < ::Concurrent::Synchronization::Object
1766
+ def initialize(value); end
1767
+
1768
+ def unsafe_increment_version; end
1769
+ def unsafe_lock; end
1770
+ def unsafe_value; end
1771
+ def unsafe_value=(value); end
1772
+ def unsafe_version; end
1773
+ def value; end
1774
+ def value=(value); end
1775
+
1776
+ class << self
1777
+ def new(*args, &block); end
1778
+ end
1779
+ end
1780
+
1781
+ class Concurrent::ThreadLocalVar < ::Concurrent::RubyThreadLocalVar
1782
+ end
1783
+
1784
+ class Concurrent::ThreadPoolExecutor < ::Concurrent::RubyThreadPoolExecutor
1785
+ end
1786
+
1787
+ module Concurrent::ThreadSafe
1788
+ end
1789
+
1790
+ module Concurrent::ThreadSafe::Util
1791
+ end
1792
+
1793
+ Concurrent::ThreadSafe::Util::CPU_COUNT = T.let(T.unsafe(nil), Integer)
1794
+
1795
+ Concurrent::ThreadSafe::Util::FIXNUM_BIT_SIZE = T.let(T.unsafe(nil), Integer)
1796
+
1797
+ Concurrent::ThreadSafe::Util::MAX_INT = T.let(T.unsafe(nil), Integer)
1798
+
1799
+ class Concurrent::TimeoutError < ::Concurrent::Error
1800
+ end
1801
+
1802
+ class Concurrent::TimerSet < ::Concurrent::RubyExecutorService
1803
+ def initialize(opts = T.unsafe(nil)); end
1804
+
1805
+ def kill; end
1806
+ def post(delay, *args, &task); end
1807
+
1808
+ private
1809
+
1810
+ def ns_initialize(opts); end
1811
+ def ns_post_task(task); end
1812
+ def ns_reset_if_forked; end
1813
+ def ns_shutdown_execution; end
1814
+ def post_task(task); end
1815
+ def process_tasks; end
1816
+ def remove_task(task); end
1817
+ end
1818
+
1819
+ class Concurrent::TimerTask < ::Concurrent::RubyExecutorService
1820
+ include(::Concurrent::Concern::Dereferenceable)
1821
+ include(::Concurrent::Concern::Observable)
1822
+
1823
+ def initialize(opts = T.unsafe(nil), &task); end
1824
+
1825
+ def execute; end
1826
+ def execution_interval; end
1827
+ def execution_interval=(value); end
1828
+ def running?; end
1829
+ def timeout_interval; end
1830
+ def timeout_interval=(value); end
1831
+
1832
+ private
1833
+
1834
+ def execute_task(completion); end
1835
+ def ns_initialize(opts, &task); end
1836
+ def ns_kill_execution; end
1837
+ def ns_shutdown_execution; end
1838
+ def schedule_next_task(interval = T.unsafe(nil)); end
1839
+ def timeout_task(completion); end
1840
+
1841
+ class << self
1842
+ def execute(opts = T.unsafe(nil), &task); end
1843
+ end
1844
+ end
1845
+
1846
+ Concurrent::TimerTask::EXECUTION_INTERVAL = T.let(T.unsafe(nil), Integer)
1847
+
1848
+ Concurrent::TimerTask::TIMEOUT_INTERVAL = T.let(T.unsafe(nil), Integer)
1849
+
1850
+ class Concurrent::Transaction
1851
+ def initialize; end
1852
+
1853
+ def abort; end
1854
+ def commit; end
1855
+ def read(tvar); end
1856
+ def unlock; end
1857
+ def valid?; end
1858
+ def write(tvar, value); end
1859
+
1860
+ class << self
1861
+ def current; end
1862
+ def current=(transaction); end
1863
+ end
1864
+ end
1865
+
1866
+ Concurrent::Transaction::ABORTED = T.let(T.unsafe(nil), Object)
1867
+
1868
+ class Concurrent::Transaction::AbortError < ::StandardError
1869
+ end
1870
+
1871
+ class Concurrent::Transaction::LeaveError < ::StandardError
1872
+ end
1873
+
1874
+ class Concurrent::Transaction::ReadLogEntry < ::Struct
1875
+ def tvar; end
1876
+ def tvar=(_); end
1877
+ def version; end
1878
+ def version=(_); end
1879
+
1880
+ class << self
1881
+ def [](*_); end
1882
+ def inspect; end
1883
+ def members; end
1884
+ def new(*_); end
1885
+ end
1886
+ end
1887
+
1888
+ class Concurrent::Tuple
1889
+ include(::Enumerable)
1890
+
1891
+ def initialize(size); end
1892
+
1893
+ def cas(i, old_value, new_value); end
1894
+ def compare_and_set(i, old_value, new_value); end
1895
+ def each; end
1896
+ def get(i); end
1897
+ def set(i, value); end
1898
+ def size; end
1899
+ def volatile_get(i); end
1900
+ def volatile_set(i, value); end
1901
+ end
1902
+
1903
+ module Concurrent::Utility
1904
+ end
1905
+
1906
+ module Concurrent::Utility::EngineDetector
1907
+ def on_cruby?; end
1908
+ def on_jruby?; end
1909
+ def on_jruby_9000?; end
1910
+ def on_linux?; end
1911
+ def on_osx?; end
1912
+ def on_rbx?; end
1913
+ def on_truffleruby?; end
1914
+ def on_windows?; end
1915
+ def ruby_engine; end
1916
+ def ruby_version(version = T.unsafe(nil), comparison, major, minor, patch); end
1917
+ end
1918
+
1919
+ module Concurrent::Utility::NativeExtensionLoader
1920
+ def allow_c_extensions?; end
1921
+ def c_extensions_loaded?; end
1922
+ def java_extensions_loaded?; end
1923
+ def load_native_extensions; end
1924
+
1925
+ private
1926
+
1927
+ def load_error_path(error); end
1928
+ def set_c_extensions_loaded; end
1929
+ def set_java_extensions_loaded; end
1930
+ def try_load_c_extension(path); end
1931
+ end
1932
+
1933
+ module Concurrent::Utility::NativeInteger
1934
+ extend(::Concurrent::Utility::NativeInteger)
1935
+
1936
+ def ensure_integer(value); end
1937
+ def ensure_integer_and_bounds(value); end
1938
+ def ensure_lower_bound(value); end
1939
+ def ensure_positive(value); end
1940
+ def ensure_positive_and_no_zero(value); end
1941
+ def ensure_upper_bound(value); end
1942
+ end
1943
+
1944
+ Concurrent::Utility::NativeInteger::MAX_VALUE = T.let(T.unsafe(nil), Integer)
1945
+
1946
+ Concurrent::Utility::NativeInteger::MIN_VALUE = T.let(T.unsafe(nil), Integer)
1947
+
1948
+ class Concurrent::Utility::ProcessorCounter
1949
+ def initialize; end
1950
+
1951
+ def physical_processor_count; end
1952
+ def processor_count; end
1953
+
1954
+ private
1955
+
1956
+ def compute_physical_processor_count; end
1957
+ def compute_processor_count; end
1958
+ end
1959
+
1960
+ Concurrent::VERSION = T.let(T.unsafe(nil), String)
1961
+
1962
+ Concurrent::Promises::InternalStates::PENDING = T.let(T.unsafe(nil), T.untyped)
1963
+
1964
+ Concurrent::Promises::InternalStates::RESERVED = T.let(T.unsafe(nil), T.untyped)
1965
+
1966
+ Concurrent::Promises::InternalStates::RESOLVED = T.let(T.unsafe(nil), T.untyped)