Dining Philosophers Example -- Uses native OS/2 threads and semaphores. Author: Jarda Kacer, jkacer@kiv.zcu.cz, Czech OS/2 User Group Using 5000 ms as maximum thinking time and 1000 ms as maximum eating time. Creating semaphores... OK T ... Thinking W ... Waiting for a fork E ... Eating R ... Releasing a fork D ... Dead (without any fork) | X | ... The philosopher has no fork. /X | ... The philosopher has his right fork. | X\ ... The philosopher has his left fork. /X\ ... The philosopher has both forks. T | D | D | D | D | T | T | D | D | D | T | T | T | D | D | T | T | T | T | D | T | T | T | T | T | W | T | T | T | T | W\ T | T | T | T | /W\ T | T | T | T /E\ T | T | T | T /E\ T | T | T | W /E\ T | W | T | W /E\ T | W\ T | W /E\ T /W\ T | W /E\ T /E\ T | W /R\ T /E\ T | W R\ T /E\ T | W | R | T /E\ T | W | T | T /E\ T | W | T | T /E\ T | W\ T | T /E\ T /W\ T | T /E\ T /E\ T | W /E\ T /E\ T /W /E\ T /E\ T /W /E\ T /R\ T /W /E\ T | R\ T /W /E\ T | R | T /W /E\ T | T | T /W /R\ T | T | T /W | R\ T | T | T /W | R | T | T | T /W | T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /R\ T | T | T | T /R | T | T | T | T | R | T | T | T | T | T | T | T | T | T | T | W | T | T | T | T | W\ T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /E\ W | T | T | T /R\ W | T | T | T | R\ W | T | T | T | R | W | T | T | T | T | W | T | T | T | T /W | T | T | T | T /W\ T | T | T | T /E\ T | T | T | W /E\ T | T | T | W /R\ T | T | T | W /R | T | T | T | W | R | T | T | T | W | T | T | T | T | W\ T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /R\ T | T | T | T | R\ T | T | T | T | R | T | T | T | T | T | T | T | T | W | T | T | T | T /W | T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /E\ W | T | T | T /E\ W\ T | T | T /R\ W\ T | T | T /R | W\ T | T | T | R | W\ T | T | T | T | W\ T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /R\ T | T | T | T | R\ T | T | T | T | R | T | T | T | T | T | T | T | T | W | T | T | T | T /W | T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /R\ T | T | T | T /R | T | T | T | T | R | T | T | T | T | T | T | T | T | T | W | T | T | T | T /W | T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /R\ T | T | T | T /R | T | T | T | T | R | T | T | T | T | T | T | T | T | W | T | T | T | T | W\ T | T | T | T | /W\ T | T | T | T /E\ T | T | T | T /R\ T | T | T | T R\ T | T | T | T | R | T | T | T | T | T | T | T | T | T | T | T | T | W | T | T | T | T /W | T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /E\ W | T | T | T /E\ W\ T | T | T /R\ W\ T | T | T /R | W\ T | T | T | R | W\ T | T | T | T | W\ T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /R\ T | T | T | T | R\ T | T | T | T | R | T | T | T | T | T | T | T | T | W | T | T | T | T /W | T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /R\ T | T | T | T /R | T | T | T | T | R | T | T | T | T | T | T | T | W | T | T | T | T /W | T | T | T | T /W\ T | T | T | T /E\ T | T | T | T /E\ T | T | W | T /E\ T | T | W\ T /E\ T | T /W\ T /E\ T | T /E\ T /E\ W | T /E\ T /E\ W\ T /E\ T /R\ W\ T /E\ T /R | W\ T /E\ T | R | W\ T /E\ T | D | W\ T /E\ T | D /W\ T /E\ T | D /E\ T /E\ T | D /E\ T /R\ T | D /E\ T | R\ T | D /E\ T | R | T | D /E\ T | T | T | D /R\ T | T | T | D | R\ T | T | T | D | R | T | T | T | D | D | T | T | W | D | D | T | T | W\ D | D | T | T | /W\ D | D | T | T /E\ D | D | T | T /R\ D | D | T | T R\ D | D | T | T | R | D | D | T | T | T | D | D | T | T | W | D | D | T | T | W\ D | D | T | T | /W\ D | D | T | T /E\ D | D | T | T /R\ D | D | T | T R\ D | D | T | T | R | D | D | T | T | T | D | D | T | T | W | D | D | T | T | W\ D | D | T | T | /W\ D | D | T | T /E\ D | D | T | T /E\ D | D | W | T /E\ D | D /W | T /E\ D | D /W\ T /E\ D | D /E\ T /R\ D | D /E\ T R\ D | D /E\ T | R | D | D /E\ T | D | D | D /E\ T | D | D | D /E\ W | D | D | D /E\ W\ D | D | D /R\ W\ D | D | D /R | W\ D | D | D | R | W\ D | D | D | T | W\ D | D | D | T /W\ D | D | D | T /E\ D | D | D | T /R\ D | D | D | T | R\ D | D | D | T | R | D | D | D | T | T | D | D | D | W | T | D | D | D /W | T | D | D | D /W\ T | D | D | D /E\ T | D | D | D /R\ T | D | D | D /R | T | D | D | D | R | T | D | D | D | D | T | D | D | D | D | W | D | D | D | D | W\ D | D | D | D /W\ D | D | D | D /E\ D | D | D | D /R\ D | D | D | D | R\ D | D | D | D | R | D | D | D | D | D | Destroying mutex semaphores... OK