Close the connection.  Kills the send and receive threads, as
        well as closing the underlying socket.

def close(self):
        """
        Close the connection.  Kills the send and receive threads, as
        well as closing the underlying socket.
        """

        if self._recv_thread:
            self._recv_thread.kill()
            self._recv_thread = None

        if self._send_thread:
            self._send_thread.kill()
            self._send_thread = None

        if self._sock:
            self._sock.close()
            self._sock = None

        # Make sure to notify the manager we're closed
        super(TCPTendril, self).close()