module Typhoeus::Pool

def self.clear

Clear the pool
def self.clear
  @mutex.synchronize { easies.clear }
end

def self.easies

def self.easies
  @easies ||= []
end

def self.get

Returns:
  • (Ethon::Easy) - The easy.

Other tags:
    Example: Return easy. -
def self.get
  @mutex.synchronize do
    if @pid == Process.pid
      easies.pop
    else
      # Process has forked. Clear all easies to avoid sockets being
      # shared between processes.
      @pid = Process.pid
      easies.clear
      nil
    end
  end || Ethon::Easy.new
end

def self.release(easy)

Other tags:
    Example: Release easy. -
def self.release(easy)
  easy.cookielist = "flush" # dump all known cookies to 'cookiejar'
  easy.cookielist = "all" # remove all cookies from memory for this handle
  easy.reset
  @mutex.synchronize { easies << easy }
end

def self.with_easy(&block)

Other tags:
    Example: Use easy. -
def self.with_easy(&block)
  easy = get
  yield easy
ensure
  release(easy) if easy
end