mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-29 15:36:08 +00:00
This change allows users to call pthread_create() with the pthread_attr_t argument equal to NULL. If Zephyr is configured with `CONFIG_DYNAMIC_THREAD`, then a suitable thread stack will be allocated via k_thread_stack_alloc(). The allocated thread stack is automatically freed via k_thread_stack_free(). This makes the Zephyr implementation of pthread_create() compliant with the normative spec. Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
31 lines
935 B
Plaintext
31 lines
935 B
Plaintext
# Copyright (c) 2017 Intel Corporation
|
|
# Copyright (c) 2023 Meta
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
TYPE = PTHREAD
|
|
type = pthread_t
|
|
type-function = pthread_create
|
|
source "lib/posix/Kconfig.template.pooled_ipc_type"
|
|
|
|
if PTHREAD
|
|
|
|
config PTHREAD_RECYCLER_DELAY_MS
|
|
int "Delay for reclaiming dynamic pthread stacks (ms)"
|
|
default 100
|
|
help
|
|
Prior to a POSIX thread terminating via k_thread_abort(), scheduled
|
|
work is added to the system workqueue (SWQ) so that any resources
|
|
allocated by the thread (e.g. thread stack from a pool or the heap)
|
|
can be released back to the system. Because resources are also freed
|
|
on calls to pthread_create() there is no need to worry about resource
|
|
starvation.
|
|
|
|
This option sets the number of milliseconds by which to defer
|
|
scheduled work.
|
|
|
|
Note: this option should be considered temporary and will likely be
|
|
removed once a more synchronous solution is available.
|
|
|
|
endif
|