diff options
author | Anjum Fatima | 2017-09-13 15:34:45 +0000 |
---|---|---|
committer | Anjum Fatima | 2017-09-13 15:34:45 +0000 |
commit | 9e163a59af0816d8c6e574d21e1b12eced64adb4 (patch) | |
tree | efe941a29eae2fcfe09268dda9e1a8b10770d4f4 | |
parent | 3caa76c880b6dc05b49a06d3ff10f675391eb517 (diff) | |
download | rt.equinox.bundles-9e163a59af0816d8c6e574d21e1b12eced64adb4.tar.gz rt.equinox.bundles-9e163a59af0816d8c6e574d21e1b12eced64adb4.tar.xz rt.equinox.bundles-9e163a59af0816d8c6e574d21e1b12eced64adb4.zip |
Bug 521208 - PushStream returned by LogStreamProvider should be buffered
rather than unbuffered
Changed the number of threads for executor. And added parallelism of one
to build the pushstream
Change-Id: Ic637d83d7606956e68af8dccc5ac566ba47b6561
Signed-off-by: Anjum Fatima <anjum.eclipse@gmail.com>
2 files changed, 4 insertions, 6 deletions
diff --git a/bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderFactory.java b/bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderFactory.java index 058207158..c75a6e445 100644 --- a/bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderFactory.java +++ b/bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderFactory.java @@ -31,13 +31,11 @@ public class LogStreamProviderFactory implements ServiceFactory<LogStreamProvide ReentrantReadWriteLock eventProducerLock = new ReentrantReadWriteLock(); ServiceTracker<LogReaderService, AtomicReference<LogReaderService>> logReaderService; - /* - * ExecutorService is used to provide parallelism of one by making sure only one thread is used for the executor - */ - private final ExecutorService executor = Executors.newSingleThreadExecutor(new ThreadFactory() { + private final int cores = Runtime.getRuntime().availableProcessors(); + private final ExecutorService executor = Executors.newFixedThreadPool(cores - 1, new ThreadFactory() { @Override public Thread newThread(Runnable r) { - return new Thread(r, "LogStream thread"); + return new Thread(r, "LogStream thread"); //$NON-NLS-1$ } }); diff --git a/bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderImpl.java b/bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderImpl.java index 94d93721d..0706ef1b9 100644 --- a/bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderImpl.java +++ b/bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderImpl.java @@ -69,7 +69,7 @@ public class LogStreamProviderImpl implements LogStreamProvider { PushStreamBuilder<LogEntry, BlockingQueue<PushEvent<? extends LogEntry>>> streamBuilder = pushStreamProvider.buildStream(logEntrySource); //creating a buffered push stream LinkedBlockingQueue<PushEvent<? extends LogEntry>> historyQueue = new LinkedBlockingQueue<>(); - PushStream<LogEntry> logStream = streamBuilder.withBuffer(historyQueue).withExecutor(executor).withQueuePolicy(QueuePolicyOption.DISCARD_OLDEST).build(); + PushStream<LogEntry> logStream = streamBuilder.withBuffer(historyQueue).withExecutor(executor).withParallelism(1).withQueuePolicy(QueuePolicyOption.DISCARD_OLDEST).build(); logEntrySource.setLogStream(logStream); // Adding to sources makes the source start listening for new entries logEntrySources.add(logEntrySource); |