sanford 0.6.5 → 0.7.0

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.
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