class RethinkDB::EM_Guard

Public Class Methods

register(conn) click to toggle source
# File lib/net.rb, line 21
def self.register(conn)
  @@mutex.synchronize {
    if !@@registered
      @@registered = true
      EM.add_shutdown_hook {
        EM_Guard.remove_em_waiters
      }
    end
    @@conns += [conn]
  }
end
remove_em_waiters() click to toggle source
# File lib/net.rb, line 37
def self.remove_em_waiters
  old_conns = Set.new
  @@mutex.synchronize {
    @@registered = false
    @@conns, old_conns = old_conns, @@conns
  }
  # This function acquires `@mon` on the connections, so it's
  # safer to do this outside our own synchronization.
  old_conns.each {|conn|
    conn.remove_em_waiters
  }
end
unregister(conn) click to toggle source
# File lib/net.rb, line 32
def self.unregister(conn)
  @@mutex.synchronize {
    @@conns -= [conn]
  }
end