code: def runFuture(future):
      
      global debug_stats
      global QueueLength
      if scoop.DEBUG:
          init_debug()  # in case _control is imported before scoop.DEBUG was set
          debug_stats[future.id]['start_time'].append(time.time())
      future.waitTime = future.stopWatch.get()
      future.stopWatch.reset()
      # Get callback Group ID and assign the broker-wide unique executor ID
      try:
          uniqueReference = [cb.groupID for cb in future.callback][0]
      except IndexError:
          uniqueReference = None
      future.executor = (scoop.worker, uniqueReference)
      try:
          future.resultValue = future.callable(*future.args, **future.kargs)
      except BaseException as err:
          future.exceptionValue = err
          future.exceptionTraceback = str(traceback.format_exc())
          scoop.logger.debug(
              "The following error occured on a worker:\n%r\n%s",
              err,
              traceback.format_exc(),
          )
      future.executionTime = future.stopWatch.get()
      future.isDone = True
  
      # Update the worker inner work statistics
      if future.executionTime != 0. and hasattr(future.callable, '__name__'):
          execStats[hash(future.callable)].appendleft(future.executionTime)
  
      # Set debugging informations if needed
      if scoop.DEBUG:
          t = time.time()
          debug_stats[future.id]['end_time'].append(t)
          debug_stats[future.id].update({
              'executionTime': future.executionTime,
              'worker': scoop.worker,
              'creationTime': future.creationTime,
              'callable': str(future.callable.__name__)
                  if hasattr(future.callable, '__name__')
                  else 'No name',
             'parent': future.parentId
          })
          QueueLength.append((t, len(execQueue), execQueue.timelen(execQueue)))
  
      # Run callback (see http://www.python.org/dev/peps/pep-3148/#future-objects)
      future._execute_callbacks(CallbackType.universal)
  
      # Delete references to the future
      future._delete()
  
      return future
docs: Callable greenlet in charge of running tasks.