From 7bcc8777d39111cbbaad8018d207033acc882629 Mon Sep 17 00:00:00 2001
From: nuklin <nuklin@utu.fi>
Date: Fri, 19 Nov 2021 12:22:27 +0200
Subject: [PATCH] Perutojen luonti

---
 .../Task1UsingThreadDistributor.java          | 31 ++++++++++++++++---
 1 file changed, 26 insertions(+), 5 deletions(-)

diff --git a/src/main/java/fi/utu/tech/threadrunner2/assignment/Task1UsingThreadDistributor.java b/src/main/java/fi/utu/tech/threadrunner2/assignment/Task1UsingThreadDistributor.java
index d84c85f..cca9093 100644
--- a/src/main/java/fi/utu/tech/threadrunner2/assignment/Task1UsingThreadDistributor.java
+++ b/src/main/java/fi/utu/tech/threadrunner2/assignment/Task1UsingThreadDistributor.java
@@ -2,15 +2,36 @@ package fi.utu.tech.threadrunner2.assignment;
 
 import fi.utu.tech.threadrunner2.mediator.ControlSet;
 import fi.utu.tech.threadrunner2.mediator.Mediator;
-
-public class Task1UsingThreadDistributor implements Distributor {
-
-	public Task1UsingThreadDistributor(Mediator mediator, ControlSet control) {
+import fi.utu.tech.threadrunner2.works.Work;
+import java.util.concurrent.BlockingQueue;
+public class Task1UsingThreadDistributor extends Thread implements Distributor {
+	
+	private Mediator mediator;
+	private BlockingQueue<Work> workList;
+	private ControlSet control;
 	
+	public Task1UsingThreadDistributor(Mediator mediator, ControlSet control) {
+		this.mediator = mediator;
+		this.control = control;
+		mediator.registerThread(this.hashCode(), "Thread");
 	}
 
 	public void execute() {
-
+			this.start();
+			mediator.setRunStatus("Created", this.hashCode());
+	}
+	public void run() {
+		//mediator.registerThread(this.hashCode(), "Jotain1");
+		mediator.setRunStatus("Running", this.hashCode());
+		int maara = control.getBlockSize();
+		workList = mediator.getWorkSlice(maara); //antaa listasta yhden työn. Tämä täytyy antaa tehtäväksi jollekin!
+		for( Work item : workList) {
+			mediator.setWorkStatus("Calculating", item);
+			item.work();
+			mediator.setWorkStatus("Done", item);
+			mediator.increaseCalculated(this.hashCode());
+		}
+		mediator.setRunStatus("Ended", this.hashCode());
 	}
 
 }
-- 
GitLab