mongoo 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/lib/mongoo/async.rb +58 -55
  3. data/mongoo.gemspec +2 -2
  4. metadata +3 -3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.4.3
data/lib/mongoo/async.rb CHANGED
@@ -34,55 +34,56 @@ module Mongo
34
34
  #
35
35
  def initialize(connection, host, port, opts={})
36
36
  @connection = connection
37
-
38
37
  @host, @port = host, port
39
38
 
40
- # Pool size and timeout.
41
- @size = opts[:size] || 1
42
- @timeout = opts[:timeout] || 5.0
39
+ # # Pool size and timeout.
40
+ # @size = opts[:size] || 1
41
+ # @timeout = opts[:timeout] || 5.0
43
42
 
44
- # Operations to perform on a socket
45
- @socket_ops = Hash.new { |h, k| h[k] = [] }
43
+ # # Operations to perform on a socket
44
+ # @socket_ops = Hash.new { |h, k| h[k] = [] }
46
45
 
47
- @all = []
48
- @reserved = {} # map of in-progress connections
49
- @available = [] # pool of free connections
50
- @pending = [] # pending reservations (FIFO)
46
+ # @all = []
47
+ # @reserved = {} # map of in-progress connections
48
+ # @available = [] # pool of free connections
49
+ # @pending = [] # pending reservations (FIFO)
51
50
 
52
- setup_pool!(host, port)
51
+ # setup_pool!(host, port)
53
52
  end
54
53
 
55
54
  def setup_pool!(host, port)
56
- @size.times do |i|
57
- sock = checkout_new_socket(host, port)
58
- @all << sock
59
- @available << sock
60
- end
55
+ true
56
+ # @size.times do |i|
57
+ # sock = checkout_new_socket(host, port)
58
+ # @all << sock
59
+ # @available << sock
60
+ # end
61
61
  end
62
62
 
63
63
  def close
64
- @all.each do |sock|
65
- begin
66
- sock.close
67
- rescue IOError => ex
68
- warn "IOError when attempting to close socket connected to #{@host}:#{@port}: #{ex.inspect}"
69
- end
70
- end
71
- @host = @port = nil
72
- @all.clear
73
- @reserved.clear
74
- @available.clear
75
- @pending.clear
64
+ true
65
+ # @all.each do |sock|
66
+ # begin
67
+ # sock.close
68
+ # rescue IOError => ex
69
+ # warn "IOError when attempting to close socket connected to #{@host}:#{@port}: #{ex.inspect}"
70
+ # end
71
+ # end
72
+ # @host = @port = nil
73
+ # @all.clear
74
+ # @reserved.clear
75
+ # @available.clear
76
+ # @pending.clear
76
77
  end
77
78
 
78
79
  # Return a socket to the pool.
79
80
  def checkin(socket)
80
- fiber = Fiber.current
81
-
82
- @available.push(@reserved.delete(fiber.object_id))
83
- if pending = @pending.shift
84
- pending.resume
85
- end
81
+ socket.close
82
+ # fiber = Fiber.current
83
+ # @available.push(@reserved.delete(fiber.object_id))
84
+ # if pending = @pending.shift
85
+ # pending.resume
86
+ # end
86
87
  true
87
88
  end
88
89
 
@@ -91,36 +92,39 @@ module Mongo
91
92
  # So we store the apply_authentication method, and this will be
92
93
  # applied right before the next use of each socket.
93
94
  def authenticate_existing
94
- @all.each do |socket|
95
- @socket_ops[socket] << Proc.new do
96
- @connection.apply_saved_authentication(:socket => socket)
97
- end
98
- end
95
+ true
96
+ # @all.each do |socket|
97
+ # @socket_ops[socket] << Proc.new do
98
+ # @connection.apply_saved_authentication(:socket => socket)
99
+ # end
100
+ # end
99
101
  end
100
102
 
101
103
  # Store the logout op for each existing socket to be applied before
102
104
  # the next use of each socket.
103
105
  def logout_existing(db)
104
- @all.each do |socket|
105
- @socket_ops[socket] << Proc.new do
106
- @connection.db(db).issue_logout(:socket => socket)
107
- end
108
- end
106
+ true
107
+ # @all.each do |socket|
108
+ # @socket_ops[socket] << Proc.new do
109
+ # @connection.db(db).issue_logout(:socket => socket)
110
+ # end
111
+ # end
109
112
  end
110
113
 
111
114
  # Check out an existing socket or create a new socket if the maximum
112
115
  # pool size has not been exceeded. Otherwise, wait for the next
113
116
  # available socket.
114
117
  def checkout
115
- fiber = Fiber.current
116
- #puts "[P: #{@pending.size}, A: #{@available.size}, ALL: #{@all.size}]"
117
- if socket = @available.pop
118
- @reserved[fiber.object_id] = socket
119
- socket
120
- else
121
- Fiber.yield @pending.push fiber
122
- checkout
123
- end
118
+ checkout_new_socket(@host, @port)
119
+ # fiber = Fiber.current
120
+ # #puts "[P: #{@pending.size}, A: #{@available.size}, ALL: #{@all.size}]"
121
+ # if socket = @available.pop
122
+ # @reserved[fiber.object_id] = socket
123
+ # socket
124
+ # else
125
+ # Fiber.yield @pending.push fiber
126
+ # checkout
127
+ # end
124
128
  end
125
129
 
126
130
  # Adds a new socket to the pool and checks it out.
@@ -128,8 +132,7 @@ module Mongo
128
132
  # This method is called exclusively from #checkout;
129
133
  # therefore, it runs within a mutex.
130
134
  def checkout_new_socket(host, port)
131
- return nil if @all.size >= @size
132
-
135
+ # return nil if @all.size >= @size
133
136
  begin
134
137
  socket = TCPSocket.new(host, port)
135
138
  socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
data/mongoo.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mongoo}
8
- s.version = "0.4.2"
8
+ s.version = "0.4.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ben Myles"]
12
- s.date = %q{2011-05-28}
12
+ s.date = %q{2011-05-29}
13
13
  s.description = %q{Simple object mapper for MongoDB}
14
14
  s.email = %q{ben.myles@gmail.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: mongoo
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.2
5
+ version: 0.4.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ben Myles
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-28 00:00:00 -07:00
13
+ date: 2011-05-29 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -197,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - ">="
199
199
  - !ruby/object:Gem::Version
200
- hash: 1440689006391132354
200
+ hash: 3510321131763489211
201
201
  segments:
202
202
  - 0
203
203
  version: "0"