Commit 7b5fd969 authored by tammam.alsoleman's avatar tammam.alsoleman

edit FileProducer to use PriorityBlockingQueue

parent d998425e
...@@ -4,17 +4,17 @@ import model.SequencedLine; ...@@ -4,17 +4,17 @@ import model.SequencedLine;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.PriorityBlockingQueue;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
public class FileProducer implements Runnable { public class FileProducer implements Runnable {
private final String inputFilePath; private final String inputFilePath;
private final BlockingQueue<SequencedLine> inputQueue; private final PriorityBlockingQueue<SequencedLine> inputQueue;
private final AtomicBoolean productionFinished; private final AtomicBoolean productionFinished;
private int sequenceCounter = 0; private int sequenceCounter = 0;
public FileProducer(String inputFilePath, public FileProducer(String inputFilePath,
BlockingQueue<SequencedLine> inputQueue, PriorityBlockingQueue<SequencedLine> inputQueue,
AtomicBoolean productionFinished) { AtomicBoolean productionFinished) {
this.inputFilePath = inputFilePath; this.inputFilePath = inputFilePath;
this.inputQueue = inputQueue; this.inputQueue = inputQueue;
...@@ -50,10 +50,7 @@ public class FileProducer implements Runnable { ...@@ -50,10 +50,7 @@ public class FileProducer implements Runnable {
} catch (IOException e) { } catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage()); System.err.println("Error reading file: " + e.getMessage());
e.printStackTrace(); e.printStackTrace();
} catch (InterruptedException e) { } finally {
System.err.println("Producer was interrupted while waiting for queue space");
Thread.currentThread().interrupt(); // Restore interrupt status
} finally {
// Signal that production is finished // Signal that production is finished
productionFinished.set(true); productionFinished.set(true);
System.out.println("Producer: File reading completed"); System.out.println("Producer: File reading completed");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment