avoid other OF listeners overwriting the priority of another listener
diff --git a/of/api/src/main/java/org/onlab/onos/of/controller/DefaultOpenFlowPacketContext.java b/of/api/src/main/java/org/onlab/onos/of/controller/DefaultOpenFlowPacketContext.java
index d8cd715..529bc02 100644
--- a/of/api/src/main/java/org/onlab/onos/of/controller/DefaultOpenFlowPacketContext.java
+++ b/of/api/src/main/java/org/onlab/onos/of/controller/DefaultOpenFlowPacketContext.java
@@ -3,6 +3,7 @@
 import static org.slf4j.LoggerFactory.getLogger;
 
 import java.util.Collections;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.onlab.packet.Ethernet;
 import org.projectfloodlight.openflow.protocol.OFPacketIn;
@@ -18,7 +19,7 @@
 
     private final Logger log = getLogger(getClass());
 
-    private boolean free = true;
+    private final AtomicBoolean free = new AtomicBoolean(true);
     private boolean isBuilt = false;
     private final OpenFlowSwitch sw;
     private final OFPacketIn pktin;
@@ -30,14 +31,8 @@
     }
 
     @Override
-    public void block() {
-        free = false;
-    }
-
-    @Override
     public void send() {
-        if (free && isBuilt) {
-            block();
+        if (blocked() && isBuilt) {
             sw.sendMsg(pktout);
         }
     }
@@ -111,4 +106,9 @@
         return act;
     }
 
+    @Override
+    public boolean blocked() {
+        return free.getAndSet(false);
+    }
+
 }