mirror of
https://gitlab.com/klmp200/LO41.git
synced 2025-07-12 04:39:23 +00:00
fixed a bug. I think ???
This commit is contained in:
@ -33,8 +33,9 @@ void _free__Elevator(THIS(Elevator)){
|
||||
void add_passenger_Elevator(THIS(Elevator), Passenger * passenger){
|
||||
pthread_mutex_lock(&this->mutex_passengers);
|
||||
this->passengers->insert_tail(this->passengers, ((void *)passenger), sizeof(Passenger));
|
||||
printf("L'ascenseur %s recoit le visiteur %s\nIl y a maintenant %d passagers dans l'ascenseur %s\n", this->name,
|
||||
printf("L'ascenseur %s recoit le visiteur %s à l'étage %d\nIl y a maintenant %d passagers dans l'ascenseur %s\n", this->name,
|
||||
passenger->get_name(passenger),
|
||||
this->get_floor(this),
|
||||
this->passengers->get_size(this->passengers), this->name);
|
||||
if (this->passengers->get_size(this->passengers) >= MAX_ELEVATOR_CAPACITY)
|
||||
this->set_state(this, SLEEPING);
|
||||
@ -87,7 +88,7 @@ int get_next_passenger_stop_Elevator(THIS(Elevator)){
|
||||
temp_element = this->passengers->get_element(this->passengers, i);
|
||||
temp_passenger = (Passenger*) temp_element->get_data(temp_element);
|
||||
temp_floor = temp_passenger->get_destination(temp_passenger);
|
||||
if(abs(this->floor - temp_floor) < min_diff && temp_floor != this->floor){
|
||||
if(abs(this->floor - temp_floor) < min_diff /*&& temp_floor != this->floor*/){
|
||||
min_diff = abs(this->floor - temp_floor);
|
||||
next_floor = temp_floor;
|
||||
}
|
||||
@ -141,13 +142,13 @@ void *runnable_Elevator(void * void_this){
|
||||
}
|
||||
}
|
||||
if(this->get_floor(this) != this->target_floor){
|
||||
this->set_floor(this, this->target_floor);
|
||||
printf("Ascenseur %s en route vers l'étage %d\n", this->name, this->target_floor);
|
||||
printf("DEBUG : Next passenger stop : %d\n", next_passenger_stop);
|
||||
/*printf("DEBUG : Next passenger stop : %d\n", next_passenger_stop);
|
||||
printf("DEBUG : Next call from user : %d\n", next_call);
|
||||
printf("\n\n");
|
||||
printf("\n\n");*/
|
||||
fflush(stdout);
|
||||
}
|
||||
this->set_floor(this, this->target_floor);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
Reference in New Issue
Block a user