From efb631f0176e7179212c9d98d5a70a24e901ace2 Mon Sep 17 00:00:00 2001 From: IgorNB Date: Wed, 2 Oct 2019 19:55:06 +0300 Subject: [PATCH] safe semaphore.release in finally block --- .../com/baeldung/concurrent/semaphore/SemaPhoreDemo.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core-java-modules/core-java-concurrency-basic/src/main/java/com/baeldung/concurrent/semaphore/SemaPhoreDemo.java b/core-java-modules/core-java-concurrency-basic/src/main/java/com/baeldung/concurrent/semaphore/SemaPhoreDemo.java index 211ae78c1f..153853a5b8 100644 --- a/core-java-modules/core-java-concurrency-basic/src/main/java/com/baeldung/concurrent/semaphore/SemaPhoreDemo.java +++ b/core-java-modules/core-java-concurrency-basic/src/main/java/com/baeldung/concurrent/semaphore/SemaPhoreDemo.java @@ -11,9 +11,12 @@ public class SemaPhoreDemo { System.out.println("Available permit : " + semaphore.availablePermits()); System.out.println("Number of threads waiting to acquire: " + semaphore.getQueueLength()); - if (semaphore.tryAcquire()) { + if (semaphore.tryAcquire()) + try { // perform some critical operations - semaphore.release(); + } finally { + semaphore.release(); + } } }