class RBThreadPool::RBThreadManage

Attributes

while_condi[RW]

Public Class Methods

new(queue, ex_quit = false, log = nil) click to toggle source
# File lib/core/rb_thread.rb, line 7
def initialize(queue, ex_quit = false, log = nil)
  @queue = queue
  @log = log
  @ex_quit = ex_quit
  @while_condi = true
end

Public Instance Methods

fork() click to toggle source
# File lib/core/rb_thread.rb, line 15
def fork
  return generate_thread
end

Private Instance Methods

generate_thread() click to toggle source
# File lib/core/rb_thread.rb, line 22
def generate_thread
  return Thread.new do
    Thread.current.name = "RbThr:Common #{Thread.current.to_s}" if Thread.respond_to?(:name=)
    queue = @queue
    begin
      while @while_condi
        task = queue.pop
        task.call
      end
    rescue Interrupt
      task.call unless task.nil?
      Thread.current.exit
    rescue => ex
      raise Exception, ex.message if @log.nil?
      @log.error("CommonThread:: msg: #{ex.message}, backtrace: #{ex.backtrace}")
      Thread.current.exit if @ex_quit
    end
  end
end