sanford 0.6.5 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/bench/report.txt CHANGED
@@ -2,36 +2,40 @@ Running benchmark report...
2
2
 
3
3
  Hitting "simple" service with {}, 10000 times
4
4
  ....................................................................................................
5
- Total Time: 8171.4835ms
6
- Average Time: 0.8171ms
7
- Min Time: 0.5269ms
8
- Max Time: 91.8741ms
5
+ Total Time: 8970.7162ms
6
+ Average Time: 0.8970ms
7
+ Min Time: 0.5419ms
8
+ Max Time: 108.7779ms
9
9
 
10
10
  Distribution (number of requests):
11
- 0ms: 9861
12
- 0.5ms: 5432
13
- 0.6ms: 3268
14
- 0.7ms: 727
15
- 0.8ms: 291
16
- 0.9ms: 143
17
- 1ms: 102
18
- 1.0ms: 47
19
- 1.1ms: 30
20
- 1.2ms: 15
21
- 1.3ms: 7
22
- 1.4ms: 1
23
- 1.6ms: 1
11
+ 0ms: 9634
12
+ 0.5ms: 2063
13
+ 0.6ms: 5113
14
+ 0.7ms: 1448
15
+ 0.8ms: 675
16
+ 0.9ms: 335
17
+ 1ms: 319
18
+ 1.0ms: 129
19
+ 1.1ms: 67
20
+ 1.2ms: 44
21
+ 1.3ms: 20
22
+ 1.4ms: 23
23
+ 1.5ms: 11
24
+ 1.6ms: 13
24
25
  1.7ms: 1
25
- 2ms: 7
26
- 3ms: 2
27
- 4ms: 5
28
- 47ms: 1
29
- 56ms: 1
30
- 85ms: 5
31
- 86ms: 4
32
- 88ms: 1
33
- 89ms: 3
34
- 90ms: 3
35
- 91ms: 5
26
+ 1.8ms: 6
27
+ 1.9ms: 5
28
+ 2ms: 11
29
+ 3ms: 9
30
+ 4ms: 4
31
+ 5ms: 1
32
+ 21ms: 1
33
+ 87ms: 1
34
+ 90ms: 1
35
+ 97ms: 5
36
+ 98ms: 9
37
+ 99ms: 2
38
+ 100ms: 2
39
+ 108ms: 1
36
40
 
37
41
  Done running benchmark report
@@ -34,18 +34,16 @@ module Sanford
34
34
  @sanford_host_data = Sanford::HostData.new(@sanford_host, @sanford_host_options)
35
35
  end
36
36
 
37
- # `serve` can be called at the same time by multiple threads. Thus we create
38
- # a new instance of the handler for every request.
37
+ # `serve!` can be called at the same time by multiple threads. Thus we
38
+ # create a new instance of the handler for every request.
39
39
  # When using TCP_CORK, you "cork" the socket, handle it and then "uncork"
40
40
  # it, see the `TCPCork` module for more info.
41
41
 
42
- def serve(socket)
43
- TCPCork.apply(socket)
42
+ def serve!(socket)
44
43
  connection = Connection.new(socket)
45
44
  if !self.keep_alive_connection?(connection)
46
45
  Sanford::Worker.new(@sanford_host_data, connection).run
47
46
  end
48
- TCPCork.remove(socket)
49
47
  end
50
48
 
51
49
  protected
@@ -59,7 +57,8 @@ module Sanford
59
57
  DEFAULT_TIMEOUT = 1
60
58
 
61
59
  def initialize(socket)
62
- @connection = Sanford::Protocol::Connection.new(socket)
60
+ @socket = socket
61
+ @connection = Sanford::Protocol::Connection.new(@socket)
63
62
  @timeout = (ENV['SANFORD_TIMEOUT'] || DEFAULT_TIMEOUT).to_f
64
63
  end
65
64
 
@@ -68,7 +67,9 @@ module Sanford
68
67
  end
69
68
 
70
69
  def write_data(data)
70
+ TCPCork.apply(@socket)
71
71
  @connection.write data
72
+ TCPCork.remove(@socket)
72
73
  end
73
74
 
74
75
  def peek_data
@@ -1,3 +1,3 @@
1
1
  module Sanford
2
- VERSION = "0.6.5"
2
+ VERSION = "0.7.0"
3
3
  end
data/sanford.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_dependency("dat-tcp", ["~>0.2"])
20
+ gem.add_dependency("dat-tcp", ["~>0.4"])
21
21
  gem.add_dependency("ns-options", ["~>1.0"])
22
22
  gem.add_dependency("sanford-protocol", ["~>0.5"])
23
23
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sanford
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 6
9
- - 5
10
- version: 0.6.5
8
+ - 7
9
+ - 0
10
+ version: 0.7.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Collin Redding
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-04-02 00:00:00 Z
19
+ date: 2013-07-15 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  prerelease: false
@@ -25,11 +25,11 @@ dependencies:
25
25
  requirements:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
- hash: 15
28
+ hash: 3
29
29
  segments:
30
30
  - 0
31
- - 2
32
- version: "0.2"
31
+ - 4
32
+ version: "0.4"
33
33
  requirement: *id001
34
34
  name: dat-tcp
35
35
  type: :runtime