aboutsummaryrefslogtreecommitdiff
path: root/CS2452/assign5/src/ResourceWriter.java
diff options
context:
space:
mode:
Diffstat (limited to 'CS2452/assign5/src/ResourceWriter.java')
-rwxr-xr-xCS2452/assign5/src/ResourceWriter.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/CS2452/assign5/src/ResourceWriter.java b/CS2452/assign5/src/ResourceWriter.java
new file mode 100755
index 0000000..2fb0967
--- /dev/null
+++ b/CS2452/assign5/src/ResourceWriter.java
@@ -0,0 +1,56 @@
+import java.util.concurrent.Semaphore;
+
+public class ResourceWriter implements Runnable
+{
+ Thread t;
+ byte[] res = null;
+ Semaphore flg = null;
+ Semaphore flg2 = null;
+
+ ResourceWriter(byte[] r, Semaphore s, Semaphore s2)
+ {
+ res = r;
+ flg = s;
+ flg2 = s2;
+ t = new Thread(this, "ResourceWriter");
+ t.start();
+ }
+
+ public void run()
+ {
+ int i;
+ byte value = 33;
+ boolean running = true;
+
+ System.out.println("ResourceWriter: starts");
+ while (running)
+ {
+ System.out.println("RW in while");
+ try
+ {
+ flg2.acquire();
+ flg.acquire();
+
+ for (i = 0; i < res.length; i++ )
+ res[i] = value;
+ flg.release();
+ flg2.release();
+ } catch (Exception e0)
+ {
+ e0.printStackTrace();
+ }
+
+ value++ ;
+ if (value == 100) value = 33;
+ System.out.println("ResourceWriter: updated, waiting 15, 14, ...");
+ try
+ {
+ Thread.sleep(15000);
+ } catch (Exception e)
+ {
+ }
+ }
+ System.out.println("ResourceWriter: ends");
+
+ }
+}