! @brief Stops processing SWV data.
        
        The reader thread is terminated first, then the ITM is disabled. The last step is to call
        the target's trace_stop() method.
        
        Does nothing if the init() method did not complete successfully.

def stop(self):
        """! @brief Stops processing SWV data.
        
        The reader thread is terminated first, then the ITM is disabled. The last step is to call
        the target's trace_stop() method.
        
        Does nothing if the init() method did not complete successfully.
        """
        if not self.is_alive():
            return

        self._shutdown_event.set()
        self.join()

        itm = self._session.target.get_first_child_of_type(ITM)
        itm.disable()
        
        self._session.target.trace_stop()