omq 0.28.1 → 0.28.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 +9 -0
- data/lib/omq/backend.rb +14 -1
- data/lib/omq/constants.rb +5 -4
- data/lib/omq/version.rb +1 -1
- 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: 4fdf548893d2ef3a060964a37aba4c6e7b28ef375376a98d1d609e8495801bf9
|
|
4
|
+
data.tar.gz: 3e0f418d932b6d1575dfeeae27b90faf70cddd1dcceeb47b82e9792164044e5c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9310c7e4c955c5157a161032f93faadf9acc4a7beb0c20caf47470881de1a439354a728278016e79e16c9bd83eb2c1d99ebd5be6c9fef5f465a5b909c331328e
|
|
7
|
+
data.tar.gz: 48053e2af3a4a5925ff8adaacac87345dbf32dbceaa418035a945fa047752dd30d6dd0422a5947583b245aba754c04ae89e6e9415ee308cfbd4dbfa6b4c8e536
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## 0.28.2 - 2026-07-28
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Made `OMQ.freeze_for_ractors!` freeze all global registries with
|
|
10
|
+
`Ractor.make_shareable`.
|
|
11
|
+
- Kept backend registration usable after a Ractor freeze via copy-on-write
|
|
12
|
+
registry updates.
|
|
13
|
+
|
|
5
14
|
## 0.28.1 - 2026-07-23
|
|
6
15
|
|
|
7
16
|
### Changed
|
data/lib/omq/backend.rb
CHANGED
|
@@ -6,7 +6,13 @@ module OMQ
|
|
|
6
6
|
|
|
7
7
|
class << self
|
|
8
8
|
def register(name, engine_class)
|
|
9
|
-
|
|
9
|
+
key = name.to_sym
|
|
10
|
+
|
|
11
|
+
if @engines.frozen?
|
|
12
|
+
@engines = ::Ractor.make_shareable(@engines.merge(key => engine_class))
|
|
13
|
+
else
|
|
14
|
+
@engines[key] = engine_class
|
|
15
|
+
end
|
|
10
16
|
end
|
|
11
17
|
|
|
12
18
|
|
|
@@ -18,6 +24,13 @@ module OMQ
|
|
|
18
24
|
def registered?(name)
|
|
19
25
|
@engines.key?(name.to_sym)
|
|
20
26
|
end
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def freeze_for_ractors!
|
|
30
|
+
return @engines if @engines.frozen?
|
|
31
|
+
|
|
32
|
+
@engines = ::Ractor.make_shareable(@engines)
|
|
33
|
+
end
|
|
21
34
|
end
|
|
22
35
|
end
|
|
23
36
|
end
|
data/lib/omq/constants.rb
CHANGED
|
@@ -60,9 +60,10 @@ module OMQ
|
|
|
60
60
|
# Call this once before spawning any Ractors that create OMQ sockets.
|
|
61
61
|
#
|
|
62
62
|
def self.freeze_for_ractors!
|
|
63
|
-
CONNECTION_LOST
|
|
64
|
-
CONNECTION_FAILED
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
::Ractor.make_shareable(CONNECTION_LOST)
|
|
64
|
+
::Ractor.make_shareable(CONNECTION_FAILED)
|
|
65
|
+
Backend.freeze_for_ractors!
|
|
66
|
+
::Ractor.make_shareable(Engine.transports)
|
|
67
|
+
::Ractor.make_shareable(Routing.registry)
|
|
67
68
|
end
|
|
68
69
|
end
|
data/lib/omq/version.rb
CHANGED