msgpack 1.6.1-java → 1.7.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fafa5e60c973cdf64961bf588c53e8735a7e7c4d0045dadd8c256e125ea900df
4
- data.tar.gz: 1516dcb4f885fb23af67d58794730b099d97a8fadf294213d572ad95462cb5dc
3
+ metadata.gz: 225cd938b314e1868c5314bbb8c12eca37dbbdb9f9df55ea8f90ec465f7ae819
4
+ data.tar.gz: 1d6f0a1fda6778219a7995c1be77dc3d3e1694c4ebf859c6ef9d1727f782ec6a
5
5
  SHA512:
6
- metadata.gz: 4d02b1663a845105daff5f33e26ae5a7e12e4393e536789c1f617207f1cabd7349c5b412ac8f02cbd4c9479bd7344be6ebcca0ebed2f5209663144de43ad6c66
7
- data.tar.gz: c27495943c0f54d68c26ca0df4a9aa26f57cad9adadd9e3b5b700ab5c9b820632c22362ccf71b3cb5cc8ed3095a88e14ef1f13bc0d1131dee5357d872ef23c4d
6
+ metadata.gz: 59d1d611ce0288d6d0bf3a066b406800d6ecf3f3c2515b9dd297ca21534b821eb3212c3c7feba51cd3ac0e919d06ea5bae679ef3cfdd645b58b93492298e8c56
7
+ data.tar.gz: 438982581e3e59eb8ebc899e0a9239df778651119a51a2bafd02acc8b2e51cffd2e47217ee9dfec1a3c718b4e9540af8997bc8e6ac2d9d37fc3899e0828583dd
@@ -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.0"
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.0
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-03-29 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,7 +160,7 @@ 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
  - - ">="