class EventMachine::ThreadedResource

def dispatch

completion for the work.
Called on the EM thread, generally in a perform block to return a
def dispatch
  completion = EM::Completion.new
  @queue << lambda do
    begin
      result = yield @resource
      completion.succeed result
    rescue => e
      completion.fail e
    end
  end
  completion
end