code: def reader(self, sock, handler, arg):
          
          return lib.zloop_reader(self._as_parameter_, sock, handler, arg)
docs: Register socket reader with the reactor. When the reader has messages,
  the reactor will call the handler, passing the arg. Returns 0 if OK, -1
  if there was an error. If you register the same socket more than once,
  each instance will invoke its corresponding handler.