Module: Bacon::Threaded

Defined in:
lib/bacon/ext/em_threads.rb

Class Attribute Summary collapse

Instance Method Summary collapse

Class Attribute Details

.context_threadObject

Returns the value of attribute context_thread.



4
5
6
# File 'lib/bacon/ext/em_threads.rb', line 4

def context_thread
  @context_thread
end

Instance Method Details

#runObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/bacon/ext/em_threads.rb', line 7

def run(*)
  if Threaded.context_thread == Thread.current
    super
  else
    EM.run do
      EM.defer do
        Threaded.context_thread = Thread.current
        begin
          super
        ensure
          EM::stop_event_loop()
        end
      end

    end
  end
end