farce 0.2.0 → 0.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +91 -0
- data/README.md +117 -1451
- data/docs/compatibility.md +74 -0
- data/docs/concurrency.md +151 -0
- data/docs/data-structures.md +313 -0
- data/docs/installation.md +63 -0
- data/docs/integrations.md +124 -0
- data/docs/introduction.md +266 -0
- data/docs/modes.md +8 -5
- data/docs/scheduling.md +176 -0
- data/docs/scopes.md +3 -1
- data/docs/sharing.md +211 -0
- data/docs/shims.md +144 -0
- data/docs/utilities.md +93 -0
- data/docs/variants-and-scopes.md +92 -0
- data/docs/variants.md +18 -0
- data/lib/farce/abstract/executor.rb +130 -0
- data/lib/farce/abstract/flag.rb +6 -0
- data/lib/farce/abstract/pool.rb +334 -0
- data/lib/farce/abstract/scheduler.rb +539 -93
- data/lib/farce/backports.rb +274 -0
- data/lib/farce/engine/jruby/fiber_scheduler.rb +3 -0
- data/lib/farce/engine/jruby/scheduler_synchronization.rb +87 -0
- data/lib/farce/engine/jruby/signal.rb +7 -4
- data/lib/farce/engine/ruby/3.4/null_port.rb +21 -0
- data/lib/farce/engine/ruby/3.4/patch.rb +67 -0
- data/lib/farce/engine/ruby/3.4/port.rb +13 -12
- data/lib/farce/engine/ruby/3.4/ractor_methods.rb +0 -1
- data/lib/farce/engine/ruby/4.0/null_port.rb +36 -0
- data/lib/farce/engine/ruby/4.0/port.rb +1 -2
- data/lib/farce/engine/ruby/4.1/null_port.rb +5 -0
- data/lib/farce/engine/ruby.rb +7 -0
- data/lib/farce/engine/shared/main_scheduler.rb +2 -2
- data/lib/farce/engine/shared/null_port.rb +18 -0
- data/lib/farce/engine/shared/parallel_scheduler.rb +1 -1
- data/lib/farce/engine/shared/port.rb +41 -3
- data/lib/farce/engine/shared/proxy_owner.rb +1 -1
- data/lib/farce/engine/shared/queue.rb +4 -4
- data/lib/farce/engine/shared/ractor_methods.rb +2 -2
- data/lib/farce/engine/shared/ractor_selector.rb +73 -0
- data/lib/farce/engine/shared/unshared_atom.rb +9 -8
- data/lib/farce/engine/shared.rb +9 -0
- data/lib/farce/extension.rb +150 -0
- data/lib/farce/integrations/ractor_tmvar.rb +4 -1
- data/lib/farce/internal/fake_ractor.rb +10 -2
- data/lib/farce/internal/lease_initialization.rb +1 -1
- data/lib/farce/internal/local_executor_methods.rb +33 -0
- data/lib/farce/internal/local_scheduled_task.rb +27 -0
- data/lib/farce/internal/scheduled_task.rb +1 -1
- data/lib/farce/internal/scheduler_lifecycle.rb +7 -4
- data/lib/farce/internal/thread_pool_supervisor.rb +45 -0
- data/lib/farce/internal/unshared_pool_worker.rb +14 -0
- data/lib/farce/internal.rb +14 -0
- data/lib/farce/local/pool.rb +111 -0
- data/lib/farce/local/scheduler.rb +219 -0
- data/lib/farce/null_port.rb +12 -0
- data/lib/farce/pool.rb +2 -290
- data/lib/farce/proxy.rb +2 -2
- data/lib/farce/scheduler.rb +1 -502
- data/lib/farce/system.rb +10 -2
- data/lib/farce/task.rb +285 -0
- data/lib/farce/{thread_scheduler.rb → thread_executor.rb} +7 -7
- data/lib/farce/unshared/pool.rb +44 -0
- data/lib/farce/unshared/scheduler.rb +89 -0
- data/lib/farce/version.rb +1 -1
- data/lib/farce.rb +10 -18
- metadata +34 -2
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: farce
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Konstantin Haase
|
|
@@ -24,11 +24,22 @@ files:
|
|
|
24
24
|
- README.md
|
|
25
25
|
- SECURITY.md
|
|
26
26
|
- docs/benchmarks.md
|
|
27
|
+
- docs/compatibility.md
|
|
28
|
+
- docs/concurrency.md
|
|
29
|
+
- docs/data-structures.md
|
|
27
30
|
- docs/gems/dry-types.md
|
|
28
31
|
- docs/gems/msgpack.md
|
|
29
32
|
- docs/gems/ractor-shim.md
|
|
33
|
+
- docs/installation.md
|
|
34
|
+
- docs/integrations.md
|
|
35
|
+
- docs/introduction.md
|
|
30
36
|
- docs/modes.md
|
|
37
|
+
- docs/scheduling.md
|
|
31
38
|
- docs/scopes.md
|
|
39
|
+
- docs/sharing.md
|
|
40
|
+
- docs/shims.md
|
|
41
|
+
- docs/utilities.md
|
|
42
|
+
- docs/variants-and-scopes.md
|
|
32
43
|
- docs/variants.md
|
|
33
44
|
- ext/ext_helper.rb
|
|
34
45
|
- ext/farce/README.md
|
|
@@ -85,6 +96,7 @@ files:
|
|
|
85
96
|
- lib/farce/abstract/counter.rb
|
|
86
97
|
- lib/farce/abstract/duplicable_map.rb
|
|
87
98
|
- lib/farce/abstract/exchanger.rb
|
|
99
|
+
- lib/farce/abstract/executor.rb
|
|
88
100
|
- lib/farce/abstract/flag.rb
|
|
89
101
|
- lib/farce/abstract/lazy.rb
|
|
90
102
|
- lib/farce/abstract/lease.rb
|
|
@@ -94,6 +106,7 @@ files:
|
|
|
94
106
|
- lib/farce/abstract/lru_map.rb
|
|
95
107
|
- lib/farce/abstract/map.rb
|
|
96
108
|
- lib/farce/abstract/molecule.rb
|
|
109
|
+
- lib/farce/abstract/pool.rb
|
|
97
110
|
- lib/farce/abstract/port.rb
|
|
98
111
|
- lib/farce/abstract/priority_queue.rb
|
|
99
112
|
- lib/farce/abstract/queue.rb
|
|
@@ -110,6 +123,7 @@ files:
|
|
|
110
123
|
- lib/farce/abstract/weak_set.rb
|
|
111
124
|
- lib/farce/abstract/weak_value_map.rb
|
|
112
125
|
- lib/farce/atom.rb
|
|
126
|
+
- lib/farce/backports.rb
|
|
113
127
|
- lib/farce/class_mirror.rb
|
|
114
128
|
- lib/farce/clock.rb
|
|
115
129
|
- lib/farce/config.rb
|
|
@@ -122,6 +136,7 @@ files:
|
|
|
122
136
|
- lib/farce/engine/jruby/lease_waiting.rb
|
|
123
137
|
- lib/farce/engine/jruby/map.rb
|
|
124
138
|
- lib/farce/engine/jruby/mutable_numeric_copy.rb
|
|
139
|
+
- lib/farce/engine/jruby/scheduler_synchronization.rb
|
|
125
140
|
- lib/farce/engine/jruby/signal.rb
|
|
126
141
|
- lib/farce/engine/jvm.rb
|
|
127
142
|
- lib/farce/engine/jvm/concurrent_weak_registry.rb
|
|
@@ -134,14 +149,18 @@ files:
|
|
|
134
149
|
- lib/farce/engine/jvm/types.rb
|
|
135
150
|
- lib/farce/engine/ruby.rb
|
|
136
151
|
- lib/farce/engine/ruby/3.4/fiber_scheduler.rb
|
|
152
|
+
- lib/farce/engine/ruby/3.4/null_port.rb
|
|
153
|
+
- lib/farce/engine/ruby/3.4/patch.rb
|
|
137
154
|
- lib/farce/engine/ruby/3.4/port.rb
|
|
138
155
|
- lib/farce/engine/ruby/3.4/ractor_methods.rb
|
|
139
156
|
- lib/farce/engine/ruby/3.4/ractor_selector.rb
|
|
140
157
|
- lib/farce/engine/ruby/3.4/vault.rb
|
|
158
|
+
- lib/farce/engine/ruby/4.0/null_port.rb
|
|
141
159
|
- lib/farce/engine/ruby/4.0/port.rb
|
|
142
160
|
- lib/farce/engine/ruby/4.0/ractor_methods.rb
|
|
143
161
|
- lib/farce/engine/ruby/4.0/ractor_selector.rb
|
|
144
162
|
- lib/farce/engine/ruby/4.0/vault.rb
|
|
163
|
+
- lib/farce/engine/ruby/4.1/null_port.rb
|
|
145
164
|
- lib/farce/engine/ruby/4.1/port.rb
|
|
146
165
|
- lib/farce/engine/ruby/4.1/ractor_methods.rb
|
|
147
166
|
- lib/farce/engine/ruby/4.1/ractor_selector.rb
|
|
@@ -170,12 +189,14 @@ files:
|
|
|
170
189
|
- lib/farce/engine/shared/lease_pool.rb
|
|
171
190
|
- lib/farce/engine/shared/main_scheduler.rb
|
|
172
191
|
- lib/farce/engine/shared/map_key_coordination.rb
|
|
192
|
+
- lib/farce/engine/shared/null_port.rb
|
|
173
193
|
- lib/farce/engine/shared/parallel_scheduler.rb
|
|
174
194
|
- lib/farce/engine/shared/port.rb
|
|
175
195
|
- lib/farce/engine/shared/portable_bounded_map.rb
|
|
176
196
|
- lib/farce/engine/shared/proxy_owner.rb
|
|
177
197
|
- lib/farce/engine/shared/queue.rb
|
|
178
198
|
- lib/farce/engine/shared/ractor_methods.rb
|
|
199
|
+
- lib/farce/engine/shared/ractor_selector.rb
|
|
179
200
|
- lib/farce/engine/shared/rebindable.rb
|
|
180
201
|
- lib/farce/engine/shared/strict_atom.rb
|
|
181
202
|
- lib/farce/engine/shared/strict_map.rb
|
|
@@ -214,6 +235,7 @@ files:
|
|
|
214
235
|
- lib/farce/envelope.rb
|
|
215
236
|
- lib/farce/error.rb
|
|
216
237
|
- lib/farce/exchanger.rb
|
|
238
|
+
- lib/farce/extension.rb
|
|
217
239
|
- lib/farce/flag.rb
|
|
218
240
|
- lib/farce/integrations.rb
|
|
219
241
|
- lib/farce/integrations/active_support.rb
|
|
@@ -262,6 +284,8 @@ files:
|
|
|
262
284
|
- lib/farce/internal/lease_pool_state.rb
|
|
263
285
|
- lib/farce/internal/lease_state.rb
|
|
264
286
|
- lib/farce/internal/lease_waiting.rb
|
|
287
|
+
- lib/farce/internal/local_executor_methods.rb
|
|
288
|
+
- lib/farce/internal/local_scheduled_task.rb
|
|
265
289
|
- lib/farce/internal/managed_queue.rb
|
|
266
290
|
- lib/farce/internal/map_value_modes.rb
|
|
267
291
|
- lib/farce/internal/marshal_support.rb
|
|
@@ -287,12 +311,14 @@ files:
|
|
|
287
311
|
- lib/farce/internal/strict_lease_map.rb
|
|
288
312
|
- lib/farce/internal/strict_lease_pool.rb
|
|
289
313
|
- lib/farce/internal/thread_pool.rb
|
|
314
|
+
- lib/farce/internal/thread_pool_supervisor.rb
|
|
290
315
|
- lib/farce/internal/transaction_conflict.rb
|
|
291
316
|
- lib/farce/internal/transaction_freeze_guard.rb
|
|
292
317
|
- lib/farce/internal/transaction_map_snapshot.rb
|
|
293
318
|
- lib/farce/internal/undefined.rb
|
|
294
319
|
- lib/farce/internal/unshared_lease.rb
|
|
295
320
|
- lib/farce/internal/unshared_lease_pool.rb
|
|
321
|
+
- lib/farce/internal/unshared_pool_worker.rb
|
|
296
322
|
- lib/farce/internal/unshared_queue_waiting.rb
|
|
297
323
|
- lib/farce/internal/value_serialization.rb
|
|
298
324
|
- lib/farce/internal/weak_map_value_modes.rb
|
|
@@ -316,8 +342,10 @@ files:
|
|
|
316
342
|
- lib/farce/local/lru_map.rb
|
|
317
343
|
- lib/farce/local/map.rb
|
|
318
344
|
- lib/farce/local/molecule.rb
|
|
345
|
+
- lib/farce/local/pool.rb
|
|
319
346
|
- lib/farce/local/priority_queue.rb
|
|
320
347
|
- lib/farce/local/queue.rb
|
|
348
|
+
- lib/farce/local/scheduler.rb
|
|
321
349
|
- lib/farce/local/scoped.rb
|
|
322
350
|
- lib/farce/local/set.rb
|
|
323
351
|
- lib/farce/local/sorted_set.rb
|
|
@@ -336,6 +364,7 @@ files:
|
|
|
336
364
|
- lib/farce/mode_manager/smart_rule.rb
|
|
337
365
|
- lib/farce/molecule.rb
|
|
338
366
|
- lib/farce/mutable.rb
|
|
367
|
+
- lib/farce/null_port.rb
|
|
339
368
|
- lib/farce/pool.rb
|
|
340
369
|
- lib/farce/port.rb
|
|
341
370
|
- lib/farce/priority_queue.rb
|
|
@@ -382,7 +411,8 @@ files:
|
|
|
382
411
|
- lib/farce/strict/weak_set.rb
|
|
383
412
|
- lib/farce/strict/weak_value_map.rb
|
|
384
413
|
- lib/farce/system.rb
|
|
385
|
-
- lib/farce/
|
|
414
|
+
- lib/farce/task.rb
|
|
415
|
+
- lib/farce/thread_executor.rb
|
|
386
416
|
- lib/farce/timer_queue.rb
|
|
387
417
|
- lib/farce/transaction.rb
|
|
388
418
|
- lib/farce/transaction/atom.rb
|
|
@@ -415,8 +445,10 @@ files:
|
|
|
415
445
|
- lib/farce/unshared/lru_map.rb
|
|
416
446
|
- lib/farce/unshared/map.rb
|
|
417
447
|
- lib/farce/unshared/molecule.rb
|
|
448
|
+
- lib/farce/unshared/pool.rb
|
|
418
449
|
- lib/farce/unshared/priority_queue.rb
|
|
419
450
|
- lib/farce/unshared/queue.rb
|
|
451
|
+
- lib/farce/unshared/scheduler.rb
|
|
420
452
|
- lib/farce/unshared/set.rb
|
|
421
453
|
- lib/farce/unshared/sorted_set.rb
|
|
422
454
|
- lib/farce/unshared/timer_queue.rb
|