omq 0.15.2 → 0.15.3
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 +13 -0
- data/lib/omq/engine.rb +2 -9
- data/lib/omq/version.rb +1 -1
- data/lib/omq.rb +4 -3
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d1aa0586915986b6147a3433605657386ba586a8457e1ef2e0542b89f15da8d5
|
|
4
|
+
data.tar.gz: 7d6507a015ca32b74ee3b449f29982f3d4766975628bfea13966f77d14ec8d2f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f1dfb171e7aaa086e08a4f8ea0a30e4f13883e7e1879302edfbb0ca12ecf70176369f7aabe1861efaad5867bd8dd0ea935fd8e37cd52df5974c17391145cc8eb
|
|
7
|
+
data.tar.gz: 5c33383958134a31830b4449b7de15b92ab7221597c00537ae2cea8a53bb029bf289022043acede991459a3a64d74b2cc90ed97494e7961d98a7b6b9259fdbe7
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
- **Auto-freeze on bind/connect** — `#bind` and `#connect` now call
|
|
6
|
+
`OMQ.freeze_for_ractors!` automatically, freezing `CONNECTION_LOST`,
|
|
7
|
+
`CONNECTION_FAILED`, and `Engine.transports`. This replaces the internal
|
|
8
|
+
`#freeze_error_lists!` method which only froze the error lists.
|
|
9
|
+
- **Drop `Ractor.make_shareable`** — `freeze_for_ractors!` now uses plain
|
|
10
|
+
`.freeze` instead of `Ractor.make_shareable`, removing the Ractor
|
|
11
|
+
dependency from the core freeze path.
|
|
12
|
+
- **Freeze routing registry** — `freeze_for_ractors!` now freezes
|
|
13
|
+
`Routing.@registry` so draft socket types (SCATTER, GATHER, etc.)
|
|
14
|
+
can be created inside Ractors.
|
|
15
|
+
|
|
3
16
|
## 0.15.2 — 2026-04-07
|
|
4
17
|
|
|
5
18
|
- **Add `OMQ.freeze_for_ractors!`** — freezes `CONNECTION_LOST`,
|
data/lib/omq/engine.rb
CHANGED
|
@@ -130,7 +130,7 @@ module OMQ
|
|
|
130
130
|
# @raise [ArgumentError] on unsupported transport
|
|
131
131
|
#
|
|
132
132
|
def bind(endpoint)
|
|
133
|
-
|
|
133
|
+
OMQ.freeze_for_ractors!
|
|
134
134
|
transport = transport_for(endpoint)
|
|
135
135
|
listener = transport.bind(endpoint, self)
|
|
136
136
|
start_accept_loops(listener)
|
|
@@ -150,7 +150,7 @@ module OMQ
|
|
|
150
150
|
# @return [void]
|
|
151
151
|
#
|
|
152
152
|
def connect(endpoint)
|
|
153
|
-
|
|
153
|
+
OMQ.freeze_for_ractors!
|
|
154
154
|
validate_endpoint!(endpoint)
|
|
155
155
|
@dialed.add(endpoint)
|
|
156
156
|
if endpoint.start_with?("inproc://")
|
|
@@ -515,13 +515,6 @@ module OMQ
|
|
|
515
515
|
end
|
|
516
516
|
|
|
517
517
|
|
|
518
|
-
def freeze_error_lists!
|
|
519
|
-
return if OMQ::CONNECTION_LOST.frozen?
|
|
520
|
-
OMQ::CONNECTION_LOST.freeze
|
|
521
|
-
OMQ::CONNECTION_FAILED.freeze
|
|
522
|
-
end
|
|
523
|
-
|
|
524
|
-
|
|
525
518
|
def close_monitor_queue
|
|
526
519
|
return unless @monitor_queue
|
|
527
520
|
@monitor_queue.push(nil)
|
data/lib/omq/version.rb
CHANGED
data/lib/omq.rb
CHANGED
|
@@ -53,9 +53,10 @@ module OMQ
|
|
|
53
53
|
# Call this once before spawning any Ractors that create OMQ sockets.
|
|
54
54
|
#
|
|
55
55
|
def self.freeze_for_ractors!
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
CONNECTION_LOST.freeze
|
|
57
|
+
CONNECTION_FAILED.freeze
|
|
58
|
+
Engine.transports.freeze
|
|
59
|
+
Routing.instance_variable_get(:@registry).freeze
|
|
59
60
|
end
|
|
60
61
|
end
|
|
61
62
|
|