parameters: (self)
docstring: Run the build by creating an instance of :py:class:`waflib.Runner.Parallel`
  		The cache file is not written if the build is up to date (no task executed).
docstring_summary: Run the build by creating an instance of :py:class:`waflib.Runner.Parallel`
  		The cache file is not written if the build is up to date (no task executed).
docstring_tokens: Run the build by creating an instance of : py : class : waflib . Runner . Parallel The cache file is not written if the build is up to date ( no task executed ) .
function: def compile(self):
  		"""
  		Run the build by creating an instance of :py:class:`waflib.Runner.Parallel`
  		The cache file is not written if the build is up to date (no task executed).
  		"""
  		Logs.debug('build: compile()')
  
  		# use another object to perform the producer-consumer logic (reduce the complexity)
  		self.producer = Runner.Parallel(self, self.jobs)
  		self.producer.biter = self.get_build_iterator()
  		self.returned_tasks = [] # not part of the API yet
  		try:
  			self.producer.start()
  		except KeyboardInterrupt:
  			self.store()
  			raise
  		else:
  			if self.producer.dirty:
  				self.store()
  
  		if self.producer.error:
  			raise Errors.BuildError(self.producer.error)
function_tokens: def compile ( self ) : Logs . debug ( 'build: compile()' ) # use another object to perform the producer-consumer logic (reduce the complexity) self . producer = Runner . Parallel ( self , self . jobs ) self . producer . biter = self . get_build_iterator ( ) self . returned_tasks = [ ] # not part of the API yet try : self . producer . start ( ) except KeyboardInterrupt : self . store ( ) raise else : if self . producer . dirty : self . store ( ) if self . producer . error : raise Errors . BuildError ( self . producer . error )