packwerk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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)