From 2d523380088476e417378c378a64f8aae0301cb8 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 22 Mar 2020 15:45:09 +0100 Subject: [PATCH] Ensure not to have a semaphore larger than 1 --- lib/docker_container_pool.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/docker_container_pool.rb b/lib/docker_container_pool.rb index 2bcde088..983e62dd 100644 --- a/lib/docker_container_pool.rb +++ b/lib/docker_container_pool.rb @@ -49,8 +49,12 @@ class DockerContainerPool def self.release_semaphore Rails.logger.info("Semaphore - Release: Trying " + @semaphore.inspect.to_s + " for " + caller_locations(1, 1)[0].label) - @semaphore.release - Rails.logger.info("Semaphore - Release: Done " + @semaphore.inspect.to_s + " for " + caller_locations(1, 1)[0].label) + if @semaphore.available_permits < 1 + @semaphore.release + Rails.logger.info("Semaphore - Release: Done " + @semaphore.inspect.to_s + " for " + caller_locations(1, 1)[0].label) + else + Rails.logger.info("Semaphore - Release: Failed " + @semaphore.inspect.to_s + " for " + caller_locations(1, 1)[0].label) + end end def self.remove_from_all_containers(container, execution_environment, bypass_semaphore: false)