TD1: Set values to trigger a deadlock.
[TD_SR.git] / TD1 / exo3 / BufferCirc.java
index 335420aa60e278d80fb5ef6aa64078a7264fff1c..68f1f1f9fd922c1eab10fcf1d1f52a336156c605 100644 (file)
@@ -32,6 +32,9 @@ public class BufferCirc {
        public synchronized void depose(Object obj) {\r
                while(isFull()) {\r
                        try {\r
+                               System.out.println("Buffer is full: " + Thread.currentThread().getName()\r
+                                    + " is waiting, size: " + nbObj);\r
+\r
                                wait();\r
                        }\r
                        catch (InterruptedException e) {}\r
@@ -39,14 +42,16 @@ public class BufferCirc {
                nbObj++;\r
                tampon[prem] = obj;\r
                prem = (prem + 1) % taille;\r
+               //System.out.println(Thread.currentThread().getName() + " a depose " + (Integer)obj);\r
                notify();\r
-               System.out.println(Thread.currentThread().getName() + " a depose " + (Integer)obj);\r
        }\r
 \r
 \r
        public synchronized Object preleve() {\r
                while(isEmpty()) {\r
                        try {\r
+                               System.out.println("Buffer is empty: " + Thread.currentThread().getName()\r
+                                    + " is waiting, size: " + nbObj);\r
                                wait();\r
                        }\r
                        catch (InterruptedException e) {}\r
@@ -55,8 +60,8 @@ public class BufferCirc {
                nbObj--;\r
                outObj = tampon[der];\r
                der = (der + 1) % taille;\r
+               //System.out.println(Thread.currentThread().getName() + " a preleve " + (Integer)outObj);\r
                notify();\r
-               System.out.println(Thread.currentThread().getName() + " a preleve " + (Integer)outObj);\r
                return outObj;\r
        }\r
 \r