! @brief Close the session.
        
        Uninits the board and disconnects then closes the probe.

def close(self):
        """! @brief Close the session.
        
        Uninits the board and disconnects then closes the probe.
        """
        if self._closed:
            return
        self._closed = True

        LOG.debug("uninit session %s", self)
        if self._inited:
            try:
                self.board.uninit()
                self._inited = False
            except:
                LOG.error("exception during board uninit:", exc_info=self.log_tracebacks)
        
        if self._probe.is_open:
            try:
                self._probe.disconnect()
            except:
                LOG.error("probe exception during disconnect:", exc_info=self.log_tracebacks)
            try:
                self._probe.close()
            except:
                LOG.error("probe exception during close:", exc_info=self.log_tracebacks)