X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=TD1%2Fexo3%2FBufferCirc.java;h=ebfb2877016fdc978bf4e47b6d61ba9b9e2cb6c3;hb=7bd74736638acf238b5bcb2ae51e05519ad116ae;hp=1c13e54baffc0acb926b717c5d66f5bec8fddc37;hpb=8084e5ebb29e8b6d14109f8b06ef6f01db931609;p=TD_SR.git diff --git a/TD1/exo3/BufferCirc.java b/TD1/exo3/BufferCirc.java index 1c13e54..ebfb287 100644 --- a/TD1/exo3/BufferCirc.java +++ b/TD1/exo3/BufferCirc.java @@ -32,6 +32,9 @@ public class BufferCirc { public synchronized void depose(Object obj) { while(isFull()) { try { + System.out.println("Buffer is full: " + Thread.currentThread().getName() + + " is waiting, size: " + nbObj); + wait(); } catch (InterruptedException e) {} @@ -40,13 +43,15 @@ public class BufferCirc { tampon[prem] = obj; prem = (prem + 1) % taille; //System.out.println(Thread.currentThread().getName() + " a depose " + (Integer)obj); - notify(); + notifyAll(); } public synchronized Object preleve() { while(isEmpty()) { try { + System.out.println("Buffer is empty: " + Thread.currentThread().getName() + + " is waiting, size: " + nbObj); wait(); } catch (InterruptedException e) {} @@ -56,7 +61,7 @@ public class BufferCirc { outObj = tampon[der]; der = (der + 1) % taille; //System.out.println(Thread.currentThread().getName() + " a preleve " + (Integer)outObj); - notify(); + notifyAll(); return outObj; }