correction init Diffusion dans le main

This commit is contained in:
trochas
2025-11-10 10:34:25 +01:00
parent 4daba25d6e
commit 2f8b48519e
5 changed files with 18 additions and 10 deletions

View File

@@ -11,7 +11,7 @@ public class CapteurImpl implements Capteur {
private int value;
private AlgoDiffusion diffusion;
protected List<ObserverDeCapteurAsync> observers=new ArrayList<ObserverDeCapteurAsync>();
private Boolean locker;
private Boolean locker = false;
@Override
public void attach(ObserverDeCapteurAsync o) {
@@ -31,10 +31,14 @@ public class CapteurImpl implements Capteur {
}
public void lock(){
locker = false;
locker = true;
}
public void unlock(){
locker = true;
locker = false;
}
public void setAlgoDiffusion(AlgoDiffusion diffusion){
this.diffusion = diffusion;
}
//AO2 - Concrete Servant

View File

@@ -19,10 +19,10 @@ public class DiffusionAtomique implements AlgoDiffusion {
@Override
public void execute() {
capteur.lock(); //TODO unlock
List<ObserverDeCapteurAsync> canaux = capteur.observers;
for (ObserverDeCapteurAsync canal : canaux) {
capteur.lock();
for (ObserverDeCapteurAsync canal : capteur.observers) {
canal.update(this.capteur);
}
capteur.unlock(); //TODO
}
}

View File

@@ -6,7 +6,7 @@ public class Scheduler {
private final ScheduledExecutorService scheduler;
public Scheduler(int nbCanaux) {
int nThread = 2+2*nbCanaux;
int nThread = 20+2*nbCanaux;
scheduler = Executors.newScheduledThreadPool(nThread);
}