Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnjum Fatima2017-09-13 15:34:45 +0000
committerAnjum Fatima2017-09-13 15:34:45 +0000
commit9e163a59af0816d8c6e574d21e1b12eced64adb4 (patch)
treeefe941a29eae2fcfe09268dda9e1a8b10770d4f4
parent3caa76c880b6dc05b49a06d3ff10f675391eb517 (diff)
downloadrt.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>
-rw-r--r--bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderFactory.java8
-rw-r--r--bundles/org.eclipse.equinox.log.stream/src/org/eclipse/equinox/internal/log/stream/LogStreamProviderImpl.java2
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);

Back to the top