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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1d8abfdf5533770decdf8afb3ff888e6c0a393d5c7efec57c3229d2bd4559d38
4
- data.tar.gz: 6255e873ea2fe871cdbe09df38f5f959bdcfb274c4d9bfe1e05139d4a8cc35fd
3
+ metadata.gz: d1aa0586915986b6147a3433605657386ba586a8457e1ef2e0542b89f15da8d5
4
+ data.tar.gz: 7d6507a015ca32b74ee3b449f29982f3d4766975628bfea13966f77d14ec8d2f
5
5
  SHA512:
6
- metadata.gz: 663ddb49423de2b24c2b56e768d76d75198fb5faba9e98978c179ffb91f12cb4e7c3bef3c7caf09178930c6aa04597747b259d7d27b58455a506d4531a66a183
7
- data.tar.gz: b1a82047b9b00218ee4e95f91511dbb2441fbd325448fe1ad8cca40881ddd7e9678ef5c5fd7ab8bafb189fd026623831845c948dcf7806b5620f0fe482505d0c
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
- freeze_error_lists!
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
- freeze_error_lists!
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OMQ
4
- VERSION = "0.15.2"
4
+ VERSION = "0.15.3"
5
5
  end
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
- Ractor.make_shareable(CONNECTION_LOST)
57
- Ractor.make_shareable(CONNECTION_FAILED)
58
- Ractor.make_shareable(Engine.transports)
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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.2
4
+ version: 0.15.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrik Wenger