code: def spin(self, use_thread=False):
          '''call callback for all data forever (until \C-c)
  
          :param use_thread: use thread for spin (do not block)
          '''
          if use_thread:
              if self._thread is not None:
                  raise 'spin called twice'
              self._thread = threading.Thread(target=self._spin_internal)
              self._thread.setDaemon(True)
              self._thread.start()
          else:
              self._spin_internal(f spin(self, use_thread=False):
          '''call callback for all data forever (until \C-c)
  
          :param use_thread: use thread for spin (do not block)
          '''
          if use_thread:
              if self._thread is not None:
                  raise 'spin called twice'
              self._thread = threading.Thread(target=self._spin_internal)
              self._thread.setDaemon(True)
              self._thread.start()
          else:
              self._spin_internal()
docs: call callback for all data forever (until \C-c)
  
          :param use_thread: use thread for spin (do not block)