Skip to content

Commit

Permalink
Using AtomicInteger instead of int for starting attribute
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Apr 2, 2013
1 parent e9c2c0e commit 6803a61
Showing 1 changed file with 5 additions and 4 deletions.
Expand Up @@ -21,6 +21,7 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Level;
import java.util.logging.Logger;

Expand Down Expand Up @@ -60,7 +61,7 @@ public class AddonRegistryImpl implements AddonRegistry
private final Forge forge;
private final LockManager lock;
private final AddonTree tree;
private volatile int starting = 0;
private AtomicInteger starting = new AtomicInteger();

private final ExecutorService executor = Executors.newFixedThreadPool(BATCH_SIZE);

Expand Down Expand Up @@ -620,7 +621,7 @@ private Future<Void> doStart(AddonImpl addon)
Future<Void> result = null;
if (addon.getRunnable() == null)
{
starting++;
starting.incrementAndGet();
AddonRunnable runnable = new AddonRunnable(forge, addon);
result = executor.submit(runnable, null);
addon.setFuture(result);
Expand All @@ -636,11 +637,11 @@ private Future<Void> doStart(AddonImpl addon)

void finishedStarting(Addon addon)
{
starting--;
starting.decrementAndGet();
}

public boolean isStartingAddons()
{
return starting > 0;
return starting.get() > 0;
}
}

0 comments on commit 6803a61

Please sign in to comment.