summaryrefslogtreecommitdiff
path: root/same/src/main/java/com/orbekk/same/State.java
diff options
context:
space:
mode:
authorKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-01-13 13:31:02 +0100
committerKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-01-13 13:31:02 +0100
commit3cb271e123784063cd08b7693be42c320970ea69 (patch)
tree3b2f5068b515b2511ff35c83d0ab6af2db3dd4cd /same/src/main/java/com/orbekk/same/State.java
parent6ec163993d1baf4ebcddde287c0ade7fb4cf20c6 (diff)
Bring back worker thread.
:(
Diffstat (limited to 'same/src/main/java/com/orbekk/same/State.java')
-rw-r--r--same/src/main/java/com/orbekk/same/State.java28
1 files changed, 11 insertions, 17 deletions
diff --git a/same/src/main/java/com/orbekk/same/State.java b/same/src/main/java/com/orbekk/same/State.java
index 49ee8c4..afd93f5 100644
--- a/same/src/main/java/com/orbekk/same/State.java
+++ b/same/src/main/java/com/orbekk/same/State.java
@@ -17,18 +17,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * This class is not thread-safe. In particular, modifications to this class
- * while getUpdatedComponents() is being used is unsafe. When accessing
- * updatedComponents, synchronize on State:
- *
- * <code>
- * synchronize (state) {
- * for (String component : state.updatedComponents()) {
- * // Do work.
- * }
- * state.clearUpdatedComponents();
- * }
- * </code>
+ * This class is thread-safe.
*/
public class State {
private Logger logger = LoggerFactory.getLogger(getClass());
@@ -128,12 +117,17 @@ public class State {
}
}
- public Set<String> getUpdatedComponents() {
- return updatedComponents;
+ /**
+ * Pretty print a component.
+ */
+ public String show(String componentName) {
+ return componentName + ": " + state.get(componentName);
}
-
- public void clearUpdatedComponents() {
- this.updatedComponents.clear();
+
+ public synchronized Set<String> getAndClearUpdatedComponents() {
+ Set<String> copy = new TreeSet<String>(updatedComponents);
+ updatedComponents.clear();
+ return copy;
}
public static class Component {