code: @Override
  	public T call() throws Exception {
  		logger.debug("task '{}' starting", id);		
  		try {
  			// do the real work 
  			return task.execute();
  		} finally {
  			// signal that the task is complete
  			logger.debug("task '{}' is complete (queue size: {})", id, queue.size());
  			queue.offer(id);			
  		}
  	}
docs: Actual thread's workhorse method; it implements a "code around" pattern,
  and delegates actual business logic to subclasses, while retaining the
  logic necessary to signal completion to the caller.
  
  @see java.util.concurrent.Callable#call()