Skip to content

Latest commit

 

History

History
 
 

philosophers

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
.. zephyr:code-sample:: posix-philosophers
   :name: POSIX Philosophers

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

Overview

This sample implements Zephyr's :zephyr:code-sample:`dining-philosophers` sample using the :ref:`POSIX API <posix_support>`. The source code for this sample can be found under :file:`samples/posix/philosophers`.

Building and Running

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

.. zephyr-app-commands::
   :zephyr-app: samples/posix/philosophers
   :host-os: unix
   :board: qemu_riscv64
   :goals: run
   :compact:

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 :kconfig:option:`CONFIG_DEBUG_THREAD_INFO` by default.

.. zephyr-app-commands::
   :zephyr-app: samples/philosophers
   :host-os: unix
   :board: <board_name>
   :goals: debug
   :compact:

Additional Information

For additional information, please refer to the :zephyr:code-sample:`dining-philosophers` sample.