diff --git a/castle/src/main/java/io/castle/android/queue/EventQueue.java b/castle/src/main/java/io/castle/android/queue/EventQueue.java index 27fed6f..ccd5a70 100644 --- a/castle/src/main/java/io/castle/android/queue/EventQueue.java +++ b/castle/src/main/java/io/castle/android/queue/EventQueue.java @@ -37,6 +37,7 @@ public class EventQueue implements Callback { private ObjectQueue eventObjectQueue; private Call flushCall; + private boolean flushOngoing = false; private int flushCount; private ExecutorService executor; @@ -111,6 +112,7 @@ private synchronized void trim() throws IOException { public synchronized void flush() { CastleLogger.d("EventQueue size " + eventObjectQueue.size()); if (!isFlushing() && (!eventObjectQueue.isEmpty())) { + flushOngoing = true; executor.execute(() -> { try { trim(); @@ -163,7 +165,7 @@ public synchronized void flush() { } public synchronized boolean isFlushing() { - return flushCall != null; + return flushOngoing; } public synchronized boolean needsFlush() { @@ -172,6 +174,7 @@ public synchronized boolean needsFlush() { private synchronized void flushed() { flushCall = null; + flushOngoing = false; flushCount = 0; }