From dc6b51c5417c1481e4bbf13ce9bdc85c2a9c7531 Mon Sep 17 00:00:00 2001 From: Rod Widdowson Date: Fri, 22 May 2026 15:51:35 +0100 Subject: [PATCH] Add Synchronization to "Guard against double shutdowns (bug 8)." Spotted by desk check when reviewing my own product's lifecycle. --- src/main/java/net/spy/memcached/MemcachedClient.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/spy/memcached/MemcachedClient.java b/src/main/java/net/spy/memcached/MemcachedClient.java index 77d0f048e..95cda6641 100644 --- a/src/main/java/net/spy/memcached/MemcachedClient.java +++ b/src/main/java/net/spy/memcached/MemcachedClient.java @@ -2484,11 +2484,13 @@ public void shutdown() { @Override public boolean shutdown(long timeout, TimeUnit unit) { // Guard against double shutdowns (bug 8). - if (shuttingDown) { - getLogger().info("Suppressing duplicate attempt to shut down"); - return false; + synchronized (this) { + if (shuttingDown) { + getLogger().info("Suppressing duplicate attempt to shut down"); + return false; + } + shuttingDown = true; } - shuttingDown = true; String baseName = mconn.getName(); mconn.setName(baseName + " - SHUTTING DOWN"); boolean rv = true;