parameters: (self)
docstring: Assume that the task has had a new attribute ``master`` which is an instance of :py:class:`waflib.Runner.Parallel`.
  		Execute the task and then put it back in the queue :py:attr:`waflib.Runner.Parallel.out` (may be replaced by subclassing).
docstring_summary: Assume that the task has had a new attribute ``master`` which is an instance of :py:class:`waflib.Runner.Parallel`.
  		Execute the task and then put it back in the queue :py:attr:`waflib.Runner.Parallel.out` (may be replaced by subclassing).
docstring_tokens: Assume that the task has had a new attribute master which is an instance of : py : class : waflib . Runner . Parallel . Execute the task and then put it back in the queue : py : attr : waflib . Runner . Parallel . out ( may be replaced by subclassing ) .
function: def process(self):
  		"""
  		Assume that the task has had a new attribute ``master`` which is an instance of :py:class:`waflib.Runner.Parallel`.
  		Execute the task and then put it back in the queue :py:attr:`waflib.Runner.Parallel.out` (may be replaced by subclassing).
  		"""
  		m = self.master
  		if m.stop:
  			m.out.put(self)
  			return
  
  		# remove the task signature immediately before it is executed
  		# in case of failure the task will be executed again
  		try:
  			del self.generator.bld.task_sigs[self.uid()]
  		except KeyError:
  			pass
  
  		try:
  			self.generator.bld.returned_tasks.append(self)
  			self.log_display(self.generator.bld)
  			ret = self.run()
  		except Exception:
  			self.err_msg = Utils.ex_stack()
  			self.hasrun = EXCEPTION
  
  			# TODO cleanup
  			m.error_handler(self)
  			m.out.put(self)
  			return
  
  		if ret:
  			self.err_code = ret
  			self.hasrun = CRASHED
  		else:
  			try:
  				self.post_run()
  			except Errors.WafError:
  				pass
  			except Exception:
  				self.err_msg = Utils.ex_stack()
  				self.hasrun = EXCEPTION
  			else:
  				self.hasrun = SUCCESS
  		if self.hasrun != SUCCESS:
  			m.error_handler(self)
  
  		m.out.put(self)
function_tokens: def process ( self ) : m = self . master if m . stop : m . out . put ( self ) return # remove the task signature immediately before it is executed # in case of failure the task will be executed again try : del self . generator . bld . task_sigs [ self . uid ( ) ] except KeyError : pass try : self . generator . bld . returned_tasks . append ( self ) self . log_display ( self . generator . bld ) ret = self . run ( ) except Exception : self . err_msg = Utils . ex_stack ( ) self . hasrun = EXCEPTION # TODO cleanup m . error_handler ( self ) m . out . put ( self ) return if ret : self . err_code = ret self . hasrun = CRASHED else : try : self . post_run ( ) except Errors . WafError : pass except Exception : self . err_msg = Utils . ex_stack ( ) self . hasrun = EXCEPTION else : self . hasrun = SUCCESS if self . hasrun != SUCCESS : m . error_handler ( self ) m . out . put ( self )