grpc_kit 0.3.0 → 0.3.1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c229b35fd09c414d3fc19aeaa1c46dd1e4c99b5046dbbaf33fbe8e418c5a34b
|
4
|
+
data.tar.gz: 613b394508932720c519ebc41abaab965e7b8cfb4ba6fcf864729bb027f8ebd8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49874a742c974ba015526b8649bb1667b65478e2b533a7cde9020e906e425f47d523d4868ad0c64d944e4f249c9c08ef88c6e592fb3dab774a987f07b54e5a2e
|
7
|
+
data.tar.gz: b147ff2d8aa48c6b1cf537b9809939a4344432a265d96543537dd9bd8aa8731681e31ea9989e7f6844a5d60adef173058942dd33120b75bf77088bf22604c28a
|
@@ -23,6 +23,10 @@ module GrpcKit
|
|
23
23
|
@deferred_read
|
24
24
|
end
|
25
25
|
|
26
|
+
def no_resume
|
27
|
+
@deferred_read = false
|
28
|
+
end
|
29
|
+
|
26
30
|
# @return [void]
|
27
31
|
def end_write
|
28
32
|
@end_write = true
|
@@ -41,22 +45,24 @@ module GrpcKit
|
|
41
45
|
# @return [nil,DS9::ERR_DEFERRED,String]
|
42
46
|
def read(size = nil)
|
43
47
|
buf = do_read(size)
|
44
|
-
if buf
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
return buf
|
49
|
-
end
|
48
|
+
if buf
|
49
|
+
@deferred_read = false
|
50
|
+
return buf
|
51
|
+
end
|
50
52
|
|
53
|
+
if end_write?
|
54
|
+
# Call again because #write invokes `@buffer << data` before calling #end_write
|
55
|
+
if (buf = do_read(size))
|
51
56
|
@deferred_read = false
|
52
|
-
return
|
57
|
+
return buf
|
53
58
|
end
|
54
59
|
|
55
|
-
@deferred_read =
|
56
|
-
return
|
60
|
+
@deferred_read = false
|
61
|
+
return nil # EOF
|
57
62
|
end
|
58
63
|
|
59
|
-
|
64
|
+
@deferred_read = true
|
65
|
+
DS9::ERR_DEFERRED
|
60
66
|
end
|
61
67
|
|
62
68
|
private
|
@@ -107,8 +107,9 @@ module GrpcKit
|
|
107
107
|
while (event = @control_queue.pop)
|
108
108
|
case event[0]
|
109
109
|
when :submit_response
|
110
|
+
stream = @streams[event[1]]
|
110
111
|
# piggybacked previous invokeing #submit_response?
|
111
|
-
|
112
|
+
unless stream && !stream.pending_send_data.empty?
|
112
113
|
next
|
113
114
|
end
|
114
115
|
|
@@ -116,7 +117,13 @@ module GrpcKit
|
|
116
117
|
when :submit_headers
|
117
118
|
submit_headers(event[1], event[2])
|
118
119
|
when :resume_data
|
120
|
+
stream = @streams[event[1]]
|
121
|
+
unless stream && stream.pending_send_data.need_resume?
|
122
|
+
next
|
123
|
+
end
|
124
|
+
|
119
125
|
resume_data(event[1])
|
126
|
+
stream.pending_send_data.no_resume
|
120
127
|
end
|
121
128
|
end
|
122
129
|
end
|
@@ -18,6 +18,7 @@ module GrpcKit
|
|
18
18
|
# @return [void]
|
19
19
|
def start_response(headers)
|
20
20
|
@control_queue.submit_response(@stream.stream_id, headers)
|
21
|
+
send_data
|
21
22
|
end
|
22
23
|
|
23
24
|
# @param headers [Hash<String, String>]
|
@@ -31,6 +32,7 @@ module GrpcKit
|
|
31
32
|
# @return [void]
|
32
33
|
def write_data(buf, last: false)
|
33
34
|
@stream.write_send_data(pack(buf), last: last)
|
35
|
+
send_data
|
34
36
|
end
|
35
37
|
|
36
38
|
# @param last [Boolean]
|
@@ -43,6 +45,7 @@ module GrpcKit
|
|
43
45
|
# @return [void]
|
44
46
|
def write_trailers(trailer)
|
45
47
|
@stream.write_trailers_data(trailer)
|
48
|
+
send_data
|
46
49
|
end
|
47
50
|
|
48
51
|
# @return [void]
|
@@ -72,11 +75,7 @@ module GrpcKit
|
|
72
75
|
end
|
73
76
|
|
74
77
|
def send_data
|
75
|
-
|
76
|
-
return
|
77
|
-
end
|
78
|
-
|
79
|
-
@session.resume_data(@stream.stream_id)
|
78
|
+
@control_queue.resume_data(@stream.stream_id)
|
80
79
|
end
|
81
80
|
end
|
82
81
|
end
|
data/lib/grpc_kit/version.rb
CHANGED