'Accept a new connection and put it on the Queue.'

def tick(self):

    try:
        (s, addr) = self.socket.accept()
        prevent_socket_inheritance(s)
        if (not self.ready):
            return
        if hasattr(s, 'settimeout'):
            s.settimeout(self.timeout)
        environ = self.environ.copy()
        if (environ.get('SERVER_SOFTWARE') is None):
            environ['SERVER_SOFTWARE'] = ('%s    WSGI    Server' % self.version)
        environ['ACTUAL_SERVER_PROTOCOL'] = self.protocol
        environ['SERVER_NAME'] = self.server_name
        if isinstance(self.bind_addr, basestring):
            environ['SERVER_PORT'] = ''
        else:
            environ['SERVER_PORT'] = str(self.bind_addr[1])
            environ['REMOTE_ADDR'] = addr[0]
            environ['REMOTE_PORT'] = str(addr[1])
        conn = self.ConnectionClass(s, self.wsgi_app, environ)
        self.requests.put(conn)
    except socket.timeout:
        return
    except socket.error as x:
        if (x.args[0] in socket_error_eintr):
            return
        if (x.args[0] in socket_errors_nonblocking):
            return
        if (x.args[0] in socket_errors_to_ignore):
            return
        raise
