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);