diff --git a/uvloop/server.pyx b/uvloop/server.pyx index 845bcfda..2dedbcc8 100644 --- a/uvloop/server.pyx +++ b/uvloop/server.pyx @@ -44,6 +44,9 @@ cdef class Server: self._loop._servers.add(self) cdef _unref(self): + # Server(None) is constructible from Python; guard before touching _loop. + if self._loop is None: + return self._loop._servers.discard(self) # Public API @@ -77,6 +80,9 @@ cdef class Server: def close(self): cdef list servers + if self._loop is None: + return + if self._servers is None: return