The latest development version of this page may be more current than this released 4.0.0 version.

POSIX Philosophers

Browse source code on GitHub

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 build -t 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.