code: def run(self):
          
          # Stop SWO first in case the probe already had it started. Ignore if this fails.
          try:
              self._session.probe.swo_stop()
          except exceptions.ProbeError:
              pass
          self._session.probe.swo_start(self._swo_clock)
          
          while not self._shutdown_event.is_set():
              data = self._session.probe.swo_read()
              if data:
                  self._parser.parse(data)
          
              sleep(0.001)
              
          self._session.probe.swo_stop()
docs: ! @brief SWV reader thread routine.
          
          Starts the probe receiving SWO data by calling DebugProbe.swo_start(). For as long as the
          thread runs, it reads SWO data from the probe and passes it to the SWO parser created in
          init(). When the thread is signaled to stop, it calls DebugProbe.swo_stop() before exiting.