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 +4 -4
- data/lib/msgpack/factory.rb +41 -53
- data/lib/msgpack/msgpack.jar +0 -0
- data/lib/msgpack/version.rb +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16503c594830bed29a4a293b3595ccc1d6733107fb0f9e11f47d109ae1c660f7
|
4
|
+
data.tar.gz: e0177555865e263b8b1a3b381f9b47089c46fe41bc93660be311eb70ba0fe056
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a03c2f8796a4b99630f748b08276d9e42b1dc663baa62dac750127bb5e4fd414ad4782a18af7ae778996a0a77ccaae0d37dc2e64a15ef14ccfa7c8095ce54d2b
|
7
|
+
data.tar.gz: 1cc775b4d74a424fd6544ac2071db7dbaa567efec65b80f79de621fa3a8f96293d13bf78afa066d86fe7ed2cbefaa4f87934fe7ea52dffc75b298f4fad039b49
|
data/lib/msgpack/factory.rb
CHANGED
@@ -88,33 +88,34 @@ module MessagePack
|
|
88
88
|
|
89
89
|
class Pool
|
90
90
|
if RUBY_ENGINE == "ruby"
|
91
|
-
class
|
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
|
99
|
-
@members.pop || @new_member.call
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
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
|
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
|
126
|
-
@mutex.synchronize { @members.pop } || @new_member.call
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
member.
|
133
|
-
|
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 =
|
160
|
-
@unpackers =
|
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
|
-
|
165
|
-
|
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
|
-
|
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
|
data/lib/msgpack/msgpack.jar
CHANGED
Binary file
|
data/lib/msgpack/version.rb
CHANGED
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.
|
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-
|
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.
|
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.
|
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.
|