diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index e322c9de794..dbd3c1d50df 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -3016,9 +3016,23 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L } public class NetworkGarbageCollector implements Runnable { - @Override public void run() { + GlobalLock gcLock = GlobalLock.getInternLock("Network.GC.Lock"); + try { + if(gcLock.lock(3)) { + try { + reallyRun(); + } finally { + gcLock.unlock(); + } + } + } finally { + gcLock.releaseRef(); + } + } + + public void reallyRun() { try { List shutdownList = new ArrayList(); long currentTime = System.currentTimeMillis() / 1000 ;