Preliminary implementation

This commit is contained in:
Brychan Dempsey 2021-04-21 15:16:15 +12:00
parent 6a07f42304
commit 23e4d99071

View File

@ -130,9 +130,12 @@ void get_into_lift(lift_info *lift, int direction) {
// Wait for person to get into lift
Sleep(GETINSPEED);
--- // Set lift to enter
--- // Signal passenger to enter
//semaphore_wait(s);
semaphore_wait(lift->stopsem);
semaphore_signal(lift->stopsem);
//--//semaphore_signal(s);
// Set lift to enter
// Signal passenger to enter
} else {
break;
}
@ -183,8 +186,8 @@ void* lift_thread(void *p) {
// Wait for exit lift delay
Sleep(GETOUTSPEED);
--- // Signal passenger to leave lift
semaphore_signal(&lift.stopsem[i]);
// Signal passenger to leave lift
// Check if that was the last passenger waiting for this floor
if(!lift.stops[lift.position]) {
@ -246,7 +249,11 @@ void* person_thread(void *p) {
// Print person waiting
print_at_xy(NLIFTS*4+ floors[from].waitingtogoup +floors[from].waitingtogodown,NFLOORS-from, pr);
while (1){
if (lift->direction == 0){
lift
}
}
--- // Wait for a lift to arrive (going up)
} else {
// One more person waiting to go down