| Module | Capistrano::Processable |
| In: |
lib/capistrano/processable.rb
lib/capistrano/processable.rb |
# File lib/capistrano/processable.rb, line 38
38: def ensure_each_session
39: errors = []
40:
41: sessions.each do |session|
42: begin
43: yield session
44: rescue Exception => error
45: errors << SessionAssociation.on(error, session)
46: end
47: end
48:
49: raise errors.first if errors.any?
50: sessions
51: end
# File lib/capistrano/processable.rb, line 38
38: def ensure_each_session
39: errors = []
40:
41: sessions.each do |session|
42: begin
43: yield session
44: rescue Exception => error
45: errors << SessionAssociation.on(error, session)
46: end
47: end
48:
49: raise errors.first if errors.any?
50: sessions
51: end
# File lib/capistrano/processable.rb, line 16
16: def process_iteration(wait=nil, &block)
17: ensure_each_session { |session| session.preprocess }
18:
19: return false if block && !block.call(self)
20:
21: readers = sessions.map { |session| session.listeners.keys }.flatten.reject { |io| io.closed? }
22: writers = readers.select { |io| io.respond_to?(:pending_write?) && io.pending_write? }
23:
24: if readers.any? || writers.any?
25: readers, writers, = IO.select(readers, writers, nil, wait)
26: end
27:
28: if readers
29: ensure_each_session do |session|
30: ios = session.listeners.keys
31: session.postprocess(ios & readers, ios & writers)
32: end
33: end
34:
35: true
36: end
# File lib/capistrano/processable.rb, line 16
16: def process_iteration(wait=nil, &block)
17: ensure_each_session { |session| session.preprocess }
18:
19: return false if block && !block.call(self)
20:
21: readers = sessions.map { |session| session.listeners.keys }.flatten.reject { |io| io.closed? }
22: writers = readers.select { |io| io.respond_to?(:pending_write?) && io.pending_write? }
23:
24: if readers.any? || writers.any?
25: readers, writers, = IO.select(readers, writers, nil, wait)
26: end
27:
28: if readers
29: ensure_each_session do |session|
30: ios = session.listeners.keys
31: session.postprocess(ios & readers, ios & writers)
32: end
33: end
34:
35: true
36: end