net-http2 0.12.0 → 0.12.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
  SHA1:
3
- metadata.gz: e3f05adbbbbe99f8eb15097186a59db80eb66042
4
- data.tar.gz: e22193008420db5d3dffffab3a39ba73eff062df
3
+ metadata.gz: 451f976b504ea90082e3b543005bfa5acd492d6c
4
+ data.tar.gz: 08aaf99a27c00e11869b93055f27d6c36a13181a
5
5
  SHA512:
6
- metadata.gz: 8ede872c9f2ed793b385354507dd0bc0dc4bb66fef127afa673eddb005e19125342faf94b977cd1994803b239b36425ebbe40bee044bdf1e82d1343d9051b21a
7
- data.tar.gz: 2e4e48b32df8d4860590d155b15d4bfd363a8f10d27897ab2ff3643c7a93827ff10fd40b7bdfe2be0a9c3bd7ffb11df45981053e34140f894e0c9273294f6303
6
+ metadata.gz: 9e2ca697436e974ffb51f42018a75b323aec53ea3a5fb8557d189bdeab5a5763796577e94346795a0f05bf2558071dc741d8e0b7fe2a2e87df04f047faf098a0
7
+ data.tar.gz: c67502d2c1e67309a43b729f6ccf040fb01e5b6cda05e472bb2afe6f98739968d52f37e45a913e42c35f4cc62dbe9f345af7eac8df8045c99c0ad3b8455ff131
@@ -28,7 +28,8 @@ module NetHttp2
28
28
 
29
29
  def call_async(request)
30
30
  ensure_open
31
- new_stream.async_call_with request
31
+ stream = new_monitored_stream_for request
32
+ stream.async_call_with request
32
33
  end
33
34
 
34
35
  def prepare_request(method, path, options={})
@@ -50,14 +51,6 @@ module NetHttp2
50
51
  end
51
52
  end
52
53
 
53
- def add_stream_to_monitor(stream)
54
- @streams[stream.id] = true
55
- end
56
-
57
- def mark_stream_as_closed(stream)
58
- @streams.delete(stream.id)
59
- end
60
-
61
54
  private
62
55
 
63
56
  def init_vars
@@ -70,7 +63,16 @@ module NetHttp2
70
63
  end
71
64
 
72
65
  def new_stream
73
- NetHttp2::Stream.new(client: self, h2_stream: h2.new_stream)
66
+ NetHttp2::Stream.new(h2_stream: h2.new_stream)
67
+ end
68
+
69
+ def new_monitored_stream_for(request)
70
+ stream = new_stream
71
+
72
+ @streams[stream.id] = true
73
+ request.on(:close) { @streams.delete(stream.id) }
74
+
75
+ stream
74
76
  end
75
77
 
76
78
  def ensure_open
@@ -78,15 +80,15 @@ module NetHttp2
78
80
 
79
81
  return if @socket_thread
80
82
 
83
+ main_thread = Thread.current
81
84
  @socket = new_socket
82
85
 
83
86
  @socket_thread = Thread.new do
84
-
85
87
  begin
86
88
  socket_loop
87
89
  rescue Exception => e
88
90
  # socket closed
89
- Thread.main.raise e
91
+ main_thread.raise e
90
92
  ensure
91
93
  @socket.close unless @socket.closed?
92
94
  @socket = nil
@@ -3,7 +3,6 @@ module NetHttp2
3
3
  class Stream
4
4
 
5
5
  def initialize(options={})
6
- @client = options[:client]
7
6
  @h2_stream = options[:h2_stream]
8
7
  @headers = {}
9
8
  @data = ''
@@ -31,7 +30,6 @@ module NetHttp2
31
30
  def async_call_with(request)
32
31
  @request = request
33
32
  @async = true
34
- @client.add_stream_to_monitor(self)
35
33
 
36
34
  send_request_data
37
35
  end
@@ -74,7 +72,6 @@ module NetHttp2
74
72
 
75
73
  if async?
76
74
  @request.emit(:close, data)
77
- @client.mark_stream_as_closed(self)
78
75
  else
79
76
  @mutex.synchronize { @cv.signal }
80
77
  end
@@ -1,3 +1,3 @@
1
1
  module NetHttp2
2
- VERSION = "0.12.0"
2
+ VERSION = "0.12.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-http2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Ostinelli
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-28 00:00:00.000000000 Z
11
+ date: 2016-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http-2