1 31 package org.objectweb.proactive.examples.readers; 32 33 34 public class Writer implements org.objectweb.proactive.RunActive { 35 36 private ReaderDisplay display; 37 private ReaderWriter rw; 38 private boolean done; 39 private boolean autopilot; 40 private boolean writing; 41 private int id; 42 43 44 47 public Writer() { 48 } 49 50 51 54 public Writer(ReaderDisplay display, ReaderWriter rw, int id) { 55 this.display = display; 56 this.rw = rw; 57 this.id = id; 58 59 done = false; 60 autopilot = true; 61 writing = false; 62 } 63 64 65 public void stopIt() { 66 done = true; 67 } 68 69 70 private void startWrite() { 71 writing = true; 72 display.setWait(id, false); 73 rw.startWrite(); 74 display.setWrite(id, true); 75 } 76 77 78 private void stopWrite() { 79 writing = false; 80 rw.endWrite(); 81 display.setWrite(id, false); 82 } 83 84 85 89 public void runActivity(org.objectweb.proactive.Body body) { 90 org.objectweb.proactive.Service service = new org.objectweb.proactive.Service(body); 91 while (!done) { 92 service.serveOldest(); 93 if (writing) 94 stopWrite(); 95 else startWrite(); 96 try { 97 Thread.sleep((long)700 + (long)(Math.random() * 1500)); 98 } catch (InterruptedException e) {} 99 } 100 } 101 } 102 | Popular Tags |