/* Acquire chopsticks, input is philosopher number. */ #include "dining.h" void pick_up(int me) { if (me == 0) { wait(chopstick[Right(me)]); printf("Philosopher %d picks up right chopstick\n", me); sleep(1); /* simulate slow picking up to encourage deadlock */ wait(chopstick[Left(me)]); printf("Philosopher %d picks up left chopstick\n", me); } else { wait(chopstick[Left(me)]); printf("Philosopher %d picks up left chopstick\n", me); sleep(1); /* simulate slow picking up to encourage deadlock */ wait(chopstick[Right(me)]); printf("Philosopher %d picks up right chopstick\n", me); } }