POSIX Philosophers

Implement a solution to the Dining Philosophers problem using the POSIX API.

Overview

This sample implements Zephyr’s Dining Philosophers sample using the POSIX API. The source code for this sample can be found under samples/posix/philosophers.

Building and Running

This project outputs to the console. It can be built and executed on QEMU as follows:

west build -b qemu_riscv64 samples/posix/philosophers
west run

Sample Output

Philosopher 0 [P: 3]  HOLDING ONE FORK
Philosopher 1 [P: 2]  HOLDING ONE FORK
Philosopher 2 [P: 1]  EATING  [ 1900 ms ]
Philosopher 3 [P: 0]  THINKING [ 2500 ms ]
Philosopher 4 [C:-1]  THINKING [ 2200 ms ]
Philosopher 5 [C:-2]  THINKING [ 1700 ms ]

Exit QEMU by pressing CTRL+A x.

Debugging

Like the original philosophers sample, the POSIX variant also enables CONFIG_DEBUG_THREAD_INFO by default.

west build -b <board_name> samples/philosophers
west debug

Additional Information

For additional information, please refer to the Dining Philosophers sample.