concurrent-ruby-edge 0.7.0 → 0.7.2
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 +53 -2
- data/README.md +3 -1
- data/lib/concurrent-ruby-edge/concurrent/actor/context.rb +2 -2
- data/lib/concurrent-ruby-edge/concurrent/actor/internal_delegations.rb +2 -2
- data/lib/concurrent-ruby-edge/concurrent/edge/erlang_actor.rb +9 -9
- data/lib/concurrent-ruby-edge/concurrent/edge/lock_free_linked_set/node.rb +1 -1
- data/lib/concurrent-ruby-edge/concurrent/edge/old_channel_integration.rb +1 -1
- data/lib/concurrent-ruby-edge/concurrent/edge/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49ac7d114fd8cc70d9ac7fc1b8d30ea32c1a66218d82a7bdaba76313572db202
|
4
|
+
data.tar.gz: 8fd63d74f5570722b8eb02017ec4a08e8f3acc05b67296872d817723a4ddb06e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1320cc36f4118c91aff14ed71608cd57740cbae0d3559f373744ebf14ccd3deb528131c773ee6924b0244aef65278036108a7b497f43678b7607a9cdb51b699
|
7
|
+
data.tar.gz: 83f02dcf8196c3385a43716113e532760dd17610e7397970062cf0e0e4d409fe8e706032fae46db8f4112a69d9d75ce2af38639278597b2e00f2dcc43e1d24ac
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,56 @@
|
|
1
1
|
## Current
|
2
2
|
|
3
|
+
## Release v1.3.5, edge v0.7.2 (15 January 2025)
|
4
|
+
|
5
|
+
concurrent-ruby:
|
6
|
+
|
7
|
+
* (#1062) Remove dependency on logger.
|
8
|
+
|
9
|
+
concurrent-ruby-edge:
|
10
|
+
|
11
|
+
* (#1062) Remove dependency on logger.
|
12
|
+
|
13
|
+
## Release v1.3.4 (10 August 2024)
|
14
|
+
|
15
|
+
* (#1060) Fix bug with return value of `Concurrent.available_processor_count` when `cpu.cfs_quota_us` is -1.
|
16
|
+
* (#1058) Add `Concurrent.cpu_shares` that is cgroups aware.
|
17
|
+
|
18
|
+
## Release v1.3.3 (9 June 2024)
|
19
|
+
|
20
|
+
* (#1053) Improve the speed of `Concurrent.physical_processor_count` on Windows.
|
21
|
+
|
22
|
+
## Release v1.3.2, edge v0.7.1 (7 June 2024)
|
23
|
+
|
24
|
+
concurrent-ruby:
|
25
|
+
|
26
|
+
* (#1051) Remove dependency on `win32ole`.
|
27
|
+
|
28
|
+
concurrent-ruby-edge:
|
29
|
+
|
30
|
+
* (#1052) Fix dependency on `concurrent-ruby` to allow the latest release.
|
31
|
+
|
32
|
+
## Release v1.3.1 (29 May 2024)
|
33
|
+
|
34
|
+
* Release 1.3.0 was broken when pushed to RubyGems. 1.3.1 is a packaging fix.
|
35
|
+
|
36
|
+
## Release v1.3.0 (28 May 2024)
|
37
|
+
|
38
|
+
* (#1042) Align Java Executor Service behavior for `shuttingdown?`, `shutdown?`
|
39
|
+
* (#1038) Add `Concurrent.available_processor_count` that is cgroups aware.
|
40
|
+
|
41
|
+
## Release v1.2.3 (16 Jan 2024)
|
42
|
+
|
43
|
+
* See [the GitHub release](https://github.com/ruby-concurrency/concurrent-ruby/releases/tag/v1.2.3) for details.
|
44
|
+
|
45
|
+
## Release v1.2.2 (24 Feb 2023)
|
46
|
+
|
47
|
+
* (#993) Fix arguments passed to `Concurrent::Map`'s `default_proc`.
|
48
|
+
|
49
|
+
## Release v1.2.1 (24 Feb 2023)
|
50
|
+
|
51
|
+
* (#990) Add missing `require 'fiber'` for `FiberLocalVar`.
|
52
|
+
* (#989) Optimize `Concurrent::Map#[]` on CRuby by letting the backing Hash handle the `default_proc`.
|
53
|
+
|
3
54
|
## Release v1.2.0 (23 Jan 2023)
|
4
55
|
|
5
56
|
* (#962) Fix ReentrantReadWriteLock to use the same granularity for locals as for Mutex it uses.
|
@@ -255,7 +306,7 @@ concurrent-ruby-edge:
|
|
255
306
|
* Simplification of `RubySingleThreadExecutor`
|
256
307
|
* `Async` improvements
|
257
308
|
- Each object uses its own `SingleThreadExecutor` instead of the global thread pool.
|
258
|
-
- No
|
309
|
+
- No longer supports executor injection
|
259
310
|
- Much better documentation
|
260
311
|
* `Atom` updates
|
261
312
|
- No longer `Dereferenceable`
|
@@ -430,7 +481,7 @@ Please see the [roadmap](https://github.com/ruby-concurrency/concurrent-ruby/iss
|
|
430
481
|
* Fixed bug with return value of `Concurrent::Actor::Utils::Pool#ask`
|
431
482
|
* Fixed timing bug in `TimerTask`
|
432
483
|
* Fixed bug when creating a `JavaThreadPoolExecutor` with minimum pool size of zero
|
433
|
-
* Removed confusing warning when not using native
|
484
|
+
* Removed confusing warning when not using native extensions
|
434
485
|
* Improved documentation
|
435
486
|
|
436
487
|
## Release v0.7.0 (13 August 2014)
|
data/README.md
CHANGED
@@ -284,7 +284,7 @@ To use the tools in the Edge gem it must be required separately:
|
|
284
284
|
require 'concurrent-edge'
|
285
285
|
```
|
286
286
|
|
287
|
-
If the library does not behave as expected, `Concurrent.
|
287
|
+
If the library does not behave as expected, `Concurrent.use_simple_logger(:DEBUG)` could
|
288
288
|
help to reveal the problem.
|
289
289
|
|
290
290
|
## Installation
|
@@ -375,6 +375,8 @@ best practice is to depend on `concurrent-ruby` and let users to decide if they
|
|
375
375
|
* [Benoit Daloze](https://github.com/eregon)
|
376
376
|
* [Matthew Draper](https://github.com/matthewd)
|
377
377
|
* [Rafael França](https://github.com/rafaelfranca)
|
378
|
+
* [Charles Oliver Nutter](https://github.com/headius)
|
379
|
+
* [Ben Sheldon](https://github.com/bensheldon)
|
378
380
|
* [Samuel Williams](https://github.com/ioquatix)
|
379
381
|
|
380
382
|
### Special Thanks to
|
@@ -84,7 +84,7 @@ module Concurrent
|
|
84
84
|
Reference
|
85
85
|
end
|
86
86
|
|
87
|
-
# override to se different default executor, e.g. to change it to
|
87
|
+
# override to se different default executor, e.g. to change it to global_fast_executor
|
88
88
|
# @return [Executor]
|
89
89
|
def default_executor
|
90
90
|
Concurrent.global_io_executor
|
@@ -109,7 +109,7 @@ module Concurrent
|
|
109
109
|
# @example by option hash
|
110
110
|
# inc2 = AdHoc.spawn(name: 'increment by 2',
|
111
111
|
# args: [2],
|
112
|
-
# executor: Concurrent.
|
112
|
+
# executor: Concurrent.global_fast_executor) do |increment_by|
|
113
113
|
# lambda { |number| number + increment_by }
|
114
114
|
# end
|
115
115
|
# inc2.ask!(2) # => 4
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require '
|
1
|
+
require 'concurrent/concern/logging'
|
2
2
|
require 'concurrent/actor/public_delegations'
|
3
3
|
|
4
4
|
module Concurrent
|
5
5
|
module Actor
|
6
6
|
module InternalDelegations
|
7
7
|
include PublicDelegations
|
8
|
-
include
|
8
|
+
include Concurrent::Concern::Logging
|
9
9
|
|
10
10
|
# @see Core#children
|
11
11
|
def children
|
@@ -674,7 +674,7 @@ module Concurrent
|
|
674
674
|
end
|
675
675
|
|
676
676
|
def tell_op(message)
|
677
|
-
log
|
677
|
+
log DEBUG, @Pid, told: message
|
678
678
|
if (mailbox = @Mailbox)
|
679
679
|
mailbox.push_op(message).then { @Pid }
|
680
680
|
else
|
@@ -683,7 +683,7 @@ module Concurrent
|
|
683
683
|
end
|
684
684
|
|
685
685
|
def tell(message, timeout = nil)
|
686
|
-
log
|
686
|
+
log DEBUG, @Pid, told: message
|
687
687
|
if (mailbox = @Mailbox)
|
688
688
|
timed_out = mailbox.push message, timeout
|
689
689
|
timeout ? timed_out : @Pid
|
@@ -693,7 +693,7 @@ module Concurrent
|
|
693
693
|
end
|
694
694
|
|
695
695
|
def ask(message, timeout, timeout_value)
|
696
|
-
log
|
696
|
+
log DEBUG, @Pid, asked: message
|
697
697
|
if @Terminated.resolved?
|
698
698
|
raise NoActor.new(@Pid)
|
699
699
|
else
|
@@ -724,7 +724,7 @@ module Concurrent
|
|
724
724
|
end
|
725
725
|
|
726
726
|
def ask_op(message, probe)
|
727
|
-
log
|
727
|
+
log DEBUG, @Pid, asked: message
|
728
728
|
if @Terminated.resolved?
|
729
729
|
probe.reject NoActor.new(@Pid), false
|
730
730
|
else
|
@@ -1029,7 +1029,7 @@ module Concurrent
|
|
1029
1029
|
end
|
1030
1030
|
|
1031
1031
|
def after_termination(final_reason)
|
1032
|
-
log
|
1032
|
+
log DEBUG, @Pid, terminated: final_reason
|
1033
1033
|
clean_reply NoActor.new(@Pid)
|
1034
1034
|
while true
|
1035
1035
|
message = @Mailbox.try_pop NOTHING
|
@@ -1071,7 +1071,7 @@ module Concurrent
|
|
1071
1071
|
inner_run(*args, &body).
|
1072
1072
|
run(Run::TEST).
|
1073
1073
|
then(&method(:after_termination)).
|
1074
|
-
rescue { |e| log
|
1074
|
+
rescue { |e| log ERROR, e }
|
1075
1075
|
end
|
1076
1076
|
|
1077
1077
|
def receive(*rules, timeout: nil, timeout_value: nil, keep: false, &given_block)
|
@@ -1163,7 +1163,7 @@ module Concurrent
|
|
1163
1163
|
end
|
1164
1164
|
|
1165
1165
|
message_future.then(start, self) do |message, s, _actor|
|
1166
|
-
log
|
1166
|
+
log DEBUG, pid, got: message
|
1167
1167
|
catch(JUMP) do
|
1168
1168
|
if (message = consume_signal(message)) == NOTHING
|
1169
1169
|
@timeout = [@timeout + s - Concurrent.monotonic_time, 0].max if s
|
@@ -1230,7 +1230,7 @@ module Concurrent
|
|
1230
1230
|
matcher = -> m { m.is_a?(Ask) ? rules_matcher === m.message : rules_matcher === m }
|
1231
1231
|
while true
|
1232
1232
|
message = @Mailbox.pop_matching(matcher, timeout, TIMEOUT)
|
1233
|
-
log
|
1233
|
+
log DEBUG, pid, got: message
|
1234
1234
|
unless (message = consume_signal(message)) == NOTHING
|
1235
1235
|
rules.each do |rule, job|
|
1236
1236
|
return eval_task(message, job) if rule === message
|
@@ -1535,7 +1535,7 @@ module Concurrent
|
|
1535
1535
|
def self.create(type, channel, environment, name, executor)
|
1536
1536
|
actor = KLASS_MAP.fetch(type).new(channel, environment, name, executor)
|
1537
1537
|
ensure
|
1538
|
-
log
|
1538
|
+
log Concern::Logging::DEBUG, actor.pid, created: caller[1] if actor
|
1539
1539
|
end
|
1540
1540
|
|
1541
1541
|
KLASS_MAP = {
|
@@ -38,7 +38,7 @@ module Concurrent
|
|
38
38
|
@SuccessorReference.value
|
39
39
|
end
|
40
40
|
|
41
|
-
# This method provides a
|
41
|
+
# This method provides a unique key for the data which will be used for
|
42
42
|
# ordering. This is configurable, and changes depending on how you wish
|
43
43
|
# the nodes to be ordered.
|
44
44
|
def key_for(data)
|
@@ -36,7 +36,7 @@ module Concurrent
|
|
36
36
|
|
37
37
|
# @!visibility private
|
38
38
|
|
39
|
-
# Zips with selected value form the
|
39
|
+
# Zips with selected value form the supplied channels
|
40
40
|
# @return [Future]
|
41
41
|
def then_select(*channels)
|
42
42
|
future = Concurrent::Promises.select(*channels)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: concurrent-ruby-edge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jerry D'Antonio
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2025-01-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: concurrent-ruby
|
@@ -18,14 +18,14 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: '1.3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 1.
|
28
|
+
version: '1.3'
|
29
29
|
description: |
|
30
30
|
These features are under active development and may change frequently. They are expected not to
|
31
31
|
keep backward compatibility (there may also lack tests and documentation). Semantic versions will
|