code: def job_callback(self, job):
  		
  		self.logger.debug('job_callback for %s started'%str(job.id))
  		with self.thread_cond:
  			self.logger.debug('job_callback for %s got condition'%str(job.id))
  			self.num_running_jobs -= 1
  
  			if not self.result_logger is None:
  				self.result_logger(job)
  			self.iterations[job.id[0]].register_result(job)
  			self.config_generator.new_result(job)
  
  			if self.num_running_jobs <= self.job_queue_sizes[0]:
  				self.logger.debug("HBMASTER: Trying to run another job!")
  				self.thread_cond.notify()
  
  		self.logger.debug('job_callback for %s finished'%str(job.id))
docs: method to be called when a job has finished
  
  		this will do some book keeping and call the user defined
  		new_result_callback if one was specified