msgpack 1.6.1-java → 1.7.1-java

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: fafa5e60c973cdf64961bf588c53e8735a7e7c4d0045dadd8c256e125ea900df
4
- data.tar.gz: 1516dcb4f885fb23af67d58794730b099d97a8fadf294213d572ad95462cb5dc
3
+ metadata.gz: 16503c594830bed29a4a293b3595ccc1d6733107fb0f9e11f47d109ae1c660f7
4
+ data.tar.gz: e0177555865e263b8b1a3b381f9b47089c46fe41bc93660be311eb70ba0fe056
5
5
  SHA512:
6
- metadata.gz: 4d02b1663a845105daff5f33e26ae5a7e12e4393e536789c1f617207f1cabd7349c5b412ac8f02cbd4c9479bd7344be6ebcca0ebed2f5209663144de43ad6c66
7
- data.tar.gz: c27495943c0f54d68c26ca0df4a9aa26f57cad9adadd9e3b5b700ab5c9b820632c22362ccf71b3cb5cc8ed3095a88e14ef1f13bc0d1131dee5357d872ef23c4d
6
+ metadata.gz: a03c2f8796a4b99630f748b08276d9e42b1dc663baa62dac750127bb5e4fd414ad4782a18af7ae778996a0a77ccaae0d37dc2e64a15ef14ccfa7c8095ce54d2b
7
+ data.tar.gz: 1cc775b4d74a424fd6544ac2071db7dbaa567efec65b80f79de621fa3a8f96293d13bf78afa066d86fe7ed2cbefaa4f87934fe7ea52dffc75b298f4fad039b49
@@ -88,33 +88,34 @@ module MessagePack
88
88
 
89
89
  class Pool
90
90
  if RUBY_ENGINE == "ruby"
91
- class AbstractPool
91
+ class MemberPool
92
92
  def initialize(size, &block)
93
93
  @size = size
94
94
  @new_member = block
95
95
  @members = []
96
96
  end
97
97
 
98
- def checkout
99
- @members.pop || @new_member.call
100
- end
101
-
102
- def checkin(member)
103
- # If the pool is already full, we simply drop the extra member.
104
- # This is because contrary to a connection pool, creating an extra instance
105
- # is extremely unlikely to cause some kind of resource exhaustion.
106
- #
107
- # We could cycle the members (keep the newer one) but first It's more work and second
108
- # the older member might have been created pre-fork, so it might be at least partially
109
- # in shared memory.
110
- if member && @members.size < @size
111
- member.reset
112
- @members << member
98
+ def with
99
+ member = @members.pop || @new_member.call
100
+ begin
101
+ yield member
102
+ ensure
103
+ # If the pool is already full, we simply drop the extra member.
104
+ # This is because contrary to a connection pool, creating an extra instance
105
+ # is extremely unlikely to cause some kind of resource exhaustion.
106
+ #
107
+ # We could cycle the members (keep the newer one) but first It's more work and second
108
+ # the older member might have been created pre-fork, so it might be at least partially
109
+ # in shared memory.
110
+ if member && @members.size < @size
111
+ member.reset
112
+ @members << member
113
+ end
113
114
  end
114
115
  end
115
116
  end
116
117
  else
117
- class AbstractPool
118
+ class MemberPool
118
119
  def initialize(size, &block)
119
120
  @size = size
120
121
  @new_member = block
@@ -122,63 +123,50 @@ module MessagePack
122
123
  @mutex = Mutex.new
123
124
  end
124
125
 
125
- def checkout
126
- @mutex.synchronize { @members.pop } || @new_member.call
127
- end
128
-
129
- def checkin(member)
130
- @mutex.synchronize do
131
- if member && @members.size < @size
132
- member.reset
133
- @members << member
126
+ def with
127
+ member = @mutex.synchronize { @members.pop } || @new_member.call
128
+ begin
129
+ yield member
130
+ ensure
131
+ member.reset
132
+ @mutex.synchronize do
133
+ if member && @members.size < @size
134
+ @members << member
135
+ end
134
136
  end
135
137
  end
136
138
  end
137
139
  end
138
140
  end
139
141
 
140
- class PackerPool < AbstractPool
141
- private
142
-
143
- def reset(packer)
144
- packer.clear
145
- end
146
- end
147
-
148
- class UnpackerPool < AbstractPool
149
- private
150
-
151
- def reset(unpacker)
152
- unpacker.reset
153
- end
154
- end
155
-
156
142
  def initialize(factory, size, options = nil)
157
143
  options = nil if !options || options.empty?
158
144
  @factory = factory
159
- @packers = PackerPool.new(size) { factory.packer(options) }
160
- @unpackers = UnpackerPool.new(size) { factory.unpacker(options) }
145
+ @packers = MemberPool.new(size) { factory.packer(options).freeze }
146
+ @unpackers = MemberPool.new(size) { factory.unpacker(options).freeze }
161
147
  end
162
148
 
163
149
  def load(data)
164
- unpacker = @unpackers.checkout
165
- begin
166
- unpacker.feed_reference(data)
150
+ @unpackers.with do |unpacker|
151
+ unpacker.feed(data)
167
152
  unpacker.full_unpack
168
- ensure
169
- @unpackers.checkin(unpacker)
170
153
  end
171
154
  end
172
155
 
173
156
  def dump(object)
174
- packer = @packers.checkout
175
- begin
157
+ @packers.with do |packer|
176
158
  packer.write(object)
177
159
  packer.full_pack
178
- ensure
179
- @packers.checkin(packer)
180
160
  end
181
161
  end
162
+
163
+ def unpacker(&block)
164
+ @unpackers.with(&block)
165
+ end
166
+
167
+ def packer(&block)
168
+ @packers.with(&block)
169
+ end
182
170
  end
183
171
  end
184
172
  end
Binary file
@@ -1,5 +1,5 @@
1
1
  module MessagePack
2
- VERSION = "1.6.1"
2
+ VERSION = "1.7.1"
3
3
  # Note for maintainers:
4
4
  # Don't miss building/releasing the JRuby version (rake buld:java)
5
5
  # See "How to build -java rubygems" in README for more details.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: msgpack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.7.1
5
5
  platform: java
6
6
  authors:
7
7
  - Sadayuki Furuhashi
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-03-03 00:00:00.000000000 Z
13
+ date: 2023-05-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  requirement: !ruby/object:Gem::Requirement
@@ -19,8 +19,8 @@ dependencies:
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  name: bundler
22
- type: :development
23
22
  prerelease: false
23
+ type: :development
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
@@ -33,8 +33,8 @@ dependencies:
33
33
  - !ruby/object:Gem::Version
34
34
  version: '0'
35
35
  name: rake
36
- type: :development
37
36
  prerelease: false
37
+ type: :development
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - ">="
@@ -47,8 +47,8 @@ dependencies:
47
47
  - !ruby/object:Gem::Version
48
48
  version: 1.1.9
49
49
  name: rake-compiler
50
- type: :development
51
50
  prerelease: false
51
+ type: :development
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - ">="
@@ -61,8 +61,8 @@ dependencies:
61
61
  - !ruby/object:Gem::Version
62
62
  version: '3.3'
63
63
  name: rspec
64
- type: :development
65
64
  prerelease: false
65
+ type: :development
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
@@ -75,8 +75,8 @@ dependencies:
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  name: ruby_memcheck
78
- type: :development
79
78
  prerelease: false
79
+ type: :development
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - ">="
@@ -89,8 +89,8 @@ dependencies:
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  name: yard
92
- type: :development
93
92
  prerelease: false
93
+ type: :development
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - ">="
@@ -103,8 +103,8 @@ dependencies:
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  name: json
106
- type: :development
107
106
  prerelease: false
107
+ type: :development
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - ">="
@@ -117,8 +117,8 @@ dependencies:
117
117
  - !ruby/object:Gem::Version
118
118
  version: 2.10.0
119
119
  name: benchmark-ips
120
- type: :development
121
120
  prerelease: false
121
+ type: :development
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
124
  - - "~>"
@@ -160,14 +160,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
160
160
  requirements:
161
161
  - - ">="
162
162
  - !ruby/object:Gem::Version
163
- version: '2.4'
163
+ version: '2.5'
164
164
  required_rubygems_version: !ruby/object:Gem::Requirement
165
165
  requirements:
166
166
  - - ">="
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
169
  requirements: []
170
- rubygems_version: 3.2.29
170
+ rubygems_version: 3.3.25
171
171
  signing_key:
172
172
  specification_version: 4
173
173
  summary: MessagePack, a binary-based efficient data interchange format.