Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
try {
System.out.println("Buffer is full: " + Thread.currentThread().getName()
+ " is waiting, size: " + nbObj);
try {
System.out.println("Buffer is full: " + Thread.currentThread().getName()
+ " is waiting, size: " + nbObj);
wait();
}
catch (InterruptedException e) {}
wait();
}
catch (InterruptedException e) {}
thread d'un type différent du type courant sortant du moniteur est également notifié
(Consommateur -> Producteur ou Producteur -> Consommateur) et sort de son attente.
thread d'un type différent du type courant sortant du moniteur est également notifié
(Consommateur -> Producteur ou Producteur -> Consommateur) et sort de son attente.
-N.B. : On suppose que la mise en attente dans moniteur des threads est une file.
+N.B. : On suppose que la mise en attente des threads dans le moniteur est une file.
Mais même si c'est une autre structure de données, la possibilité de deadlock
demeure.
Mais même si c'est une autre structure de données, la possibilité de deadlock
demeure.
InputStream IStream = null;
try {
IStream = sock.getInputStream();
InputStream IStream = null;
try {
IStream = sock.getInputStream();
- } catch (IOException e) {}
+ }
+ catch (IOException e) {}
InputStreamReader IMesg = new InputStreamReader(IStream);
lecture = new BufferedReader(IMesg);
InputStreamReader IMesg = new InputStreamReader(IStream);
lecture = new BufferedReader(IMesg);
//FIXME: read only the line before the ending newline
line = lecture.readLine();
}
//FIXME: read only the line before the ending newline
line = lecture.readLine();
}
- catch (IOException e) {}
+ catch (IOException e) {}
return line;
}
public void closeRWIO() {
ecriture.close();
return line;
}
public void closeRWIO() {
ecriture.close();
- try {
- lecture.close();
- }
- catch (IOException e) {}
+ try {
+ lecture.close();
+ }
+ catch (IOException e) {}
}
} // fin classe ClientSimplifie
}
} // fin classe ClientSimplifie