code: @Override
  	public void end () {
  		if (semaphoreAcquired) {
  			if (semaphore == null) {
  				semaphore = NonBlockingSemaphoreRepository.getSemaphore(name);
  			}
  			semaphore.release();
  			semaphoreAcquired = false;
  		}
  		super.end();
  	}
docs: Releases the semaphore.
  <p>
  This method is called when the task exits.