-DUSE_C11_AND_CXX11=ON
). Also, EMB² provides an own implementation of atomic operations for x86 and ARM to be usable with older compilers (C99/C++03). EMBB_PLATFORM_*
defines. To port the code, add appropriate implementations for your platform. Please see CONTRIBUTING.md for more details.
doc
folder in the root directory contains a tutorial (doc/tutorial/tutorial.[pdf|html|epub]
), the reference manual (doc/reference/index.html
, doc/reference/reference.pdf
), a number of simple examples (doc/examples
), as well as a more complex application (doc/tutorial/application
). Note that the documentation is only available in the release files. If you pull from the repository, you have to build them on your own (see the README.md file for more information).
embb_thread_get_max_count()
, embb_thread_set_max_count()
and class embb::base::Thread
). As usual in task-based programming models, however, explicit thread creation is only recommended in rare cases, e.g., for I/O or graphical user interfaces. For all other purposes, it is most efficient to rely on the implicitly created worker threads of the task scheduler.
mtapi_c/src/embb_mtapi_scheduler_t.c
. Currently, there are two task stealing strategies (from different queues): embb_mtapi_scheduler_get_next_task_vhpf
: high priority firstembb_mtapi_scheduler_get_next_task_lf
: local queues firstembb_mtapi_scheduler_mode_enum
in mtapi_c/src/embb_mtapi_scheduler_t.h
and by adding a call to the corresponding function in embb_mtapi_scheduler_get_next_task
. Distribution of tasks between multiple nodes is currently implemented in a round-robin fashion (see embb_mtapi_scheduler_schedule_task
).