code: def stop(self):
  		
  		thread = self.thread()
  		if thread is not None:
  			if self.stop_event() is not None:
  				self.stop_event().set()
  
  			self.thread_stopped()
  
  			if self.stop_event() is not None:
  				thread.join(self.join_timeout())
  				self.close_thread()
docs: :meth:`WStoppableTask.stop` implementation that sets stop even (if available), calls
  		:meth:`WStoppableTask.threaded_stopped` and cleans up thread (if configured)