From 501a1ae193f7644e13844f70f47b8b19b27bb087 Mon Sep 17 00:00:00 2001 From: zashraf1985 Date: Tue, 27 Dec 2022 19:09:13 -0800 Subject: [PATCH] Made ODP Event Dispatcher a daemon thread --- .../java/com/optimizely/ab/odp/ODPEventManager.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core-api/src/main/java/com/optimizely/ab/odp/ODPEventManager.java b/core-api/src/main/java/com/optimizely/ab/odp/ODPEventManager.java index 0ae441c44..ae034fd68 100644 --- a/core-api/src/main/java/com/optimizely/ab/odp/ODPEventManager.java +++ b/core-api/src/main/java/com/optimizely/ab/odp/ODPEventManager.java @@ -68,7 +68,13 @@ public void start() { eventDispatcherThread = new EventDispatcherThread(); } if (!isRunning) { - eventDispatcherThread.start(); + final ThreadFactory threadFactory = Executors.defaultThreadFactory(); + ExecutorService executor = Executors.newSingleThreadExecutor(runnable -> { + Thread thread = threadFactory.newThread(runnable); + thread.setDaemon(true); + return thread; + }); + executor.submit(eventDispatcherThread); } isRunning = true; } @@ -159,7 +165,7 @@ public void run() { if (currentBatch.size() > 0) { nextEvent = eventQueue.poll(nextFlushTime - new Date().getTime(), TimeUnit.MILLISECONDS); } else { - nextEvent = eventQueue.poll(); + nextEvent = eventQueue.take(); } if (nextEvent == null) {