code: def terminate_processor(self):
          
  
          try:
  
              if self.check_processor():
                  self._logger.debug(
                      'Attempting to end WFprocessor... event: %s' % self._wfp_terminate.is_set())
                  self._wfp_terminate.set()
                  self._wfp_process.join()
                  self._wfp_process = None
                  self._logger.debug('WFprocessor process terminated')
              else:
                  self._logger.debug('WFprocessor process already terminated')
  
              self._prof.prof('wfp process terminated', uid=self._uid)
  
              self._prof.close()
  
          except Exception, ex:
              self._logger.exception('Could not terminate wfprocessor process')
              raise
docs: **Purpose**: Method to terminate the wfp process. This method is
          blocking as it waits for the wfp process to terminate (aka join).