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>
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 0582071..c75a6e4 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 @@
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 94d9372..0706ef1 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 @@
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);