Preliminary implementation
This commit is contained in:
parent
6a07f42304
commit
23e4d99071
@ -130,9 +130,12 @@ void get_into_lift(lift_info *lift, int direction) {
|
|||||||
|
|
||||||
// Wait for person to get into lift
|
// Wait for person to get into lift
|
||||||
Sleep(GETINSPEED);
|
Sleep(GETINSPEED);
|
||||||
|
//semaphore_wait(s);
|
||||||
--- // Set lift to enter
|
semaphore_wait(lift->stopsem);
|
||||||
--- // Signal passenger to enter
|
semaphore_signal(lift->stopsem);
|
||||||
|
//--//semaphore_signal(s);
|
||||||
|
// Set lift to enter
|
||||||
|
// Signal passenger to enter
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -183,8 +186,8 @@ void* lift_thread(void *p) {
|
|||||||
|
|
||||||
// Wait for exit lift delay
|
// Wait for exit lift delay
|
||||||
Sleep(GETOUTSPEED);
|
Sleep(GETOUTSPEED);
|
||||||
|
semaphore_signal(&lift.stopsem[i]);
|
||||||
--- // Signal passenger to leave lift
|
// Signal passenger to leave lift
|
||||||
|
|
||||||
// Check if that was the last passenger waiting for this floor
|
// Check if that was the last passenger waiting for this floor
|
||||||
if(!lift.stops[lift.position]) {
|
if(!lift.stops[lift.position]) {
|
||||||
@ -246,7 +249,11 @@ void* person_thread(void *p) {
|
|||||||
|
|
||||||
// Print person waiting
|
// Print person waiting
|
||||||
print_at_xy(NLIFTS*4+ floors[from].waitingtogoup +floors[from].waitingtogodown,NFLOORS-from, pr);
|
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)
|
--- // Wait for a lift to arrive (going up)
|
||||||
} else {
|
} else {
|
||||||
// One more person waiting to go down
|
// One more person waiting to go down
|
||||||
|
Loading…
x
Reference in New Issue
Block a user