| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- ESP-pthread
- ===========
- Overview
- --------
- This module offers Espressif specific extensions to the pthread library that can be used to influence the behaviour of pthreads. Currently the following configuration can be tuned:
- * Stack size of the pthreads
- * Priority of the created pthreads
- * Inheriting this configuration across threads
- * Thread name
- * Core affinity / core pinning.
- Example to tune the stack size of the pthread:
- .. code-block:: c
- void * thread_func(void * p)
- {
- printf("In thread_func\n");
- return NULL;
- }
- void app_main(void)
- {
- pthread_t t1;
- esp_pthread_cfg_t cfg = esp_create_default_pthread_config();
- cfg.stack_size = (4 * 1024);
- esp_pthread_set_cfg(&cfg);
- pthread_create(&t1, NULL, thread_func);
- }
- The API can also be used for inheriting the settings across threads. For example:
- .. code-block:: c
- void * my_thread2(void * p)
- {
- /* This thread will inherit the stack size of 4K */
- printf("In my_thread2\n");
- return NULL;
- }
- void * my_thread1(void * p)
- {
- printf("In my_thread1\n");
- pthread_t t2;
- pthread_create(&t2, NULL, my_thread2);
- return NULL;
- }
- void app_main(void)
- {
- pthread_t t1;
- esp_pthread_cfg_t cfg = esp_create_default_pthread_config();
- cfg.stack_size = (4 * 1024);
- cfg.inherit_cfg = true;
- esp_pthread_set_cfg(&cfg);
- pthread_create(&t1, NULL, my_thread1);
- }
- API Reference
- -------------
- .. include-build-file:: inc/esp_pthread.inc
|