repositories
/
TD_SR.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TD1: Set values to trigger a deadlock.
[TD_SR.git]
/
TD1
/
exo3
/
BufferCirc.java
diff --git
a/TD1/exo3/BufferCirc.java
b/TD1/exo3/BufferCirc.java
index 335420aa60e278d80fb5ef6aa64078a7264fff1c..68f1f1f9fd922c1eab10fcf1d1f52a336156c605 100644
(file)
--- a/
TD1/exo3/BufferCirc.java
+++ b/
TD1/exo3/BufferCirc.java
@@
-32,6
+32,9
@@
public class BufferCirc {
public synchronized void depose(Object obj) {
\r
while(isFull()) {
\r
try {
\r
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
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
nbObj++;
\r
tampon[prem] = obj;
\r
prem = (prem + 1) % taille;
\r
+ //System.out.println(Thread.currentThread().getName() + " a depose " + (Integer)obj);
\r
notify();
\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
}
\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
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
nbObj--;
\r
outObj = tampon[der];
\r
der = (der + 1) % taille;
\r
+ //System.out.println(Thread.currentThread().getName() + " a preleve " + (Integer)outObj);
\r
notify();
\r
notify();
\r
- System.out.println(Thread.currentThread().getName() + " a preleve " + (Integer)outObj);
\r
return outObj;
\r
}
\r
\r
return outObj;
\r
}
\r
\r