std/thread: Use default stack size from menuconfig for NuttX
* Update comments to clarify the usage of zero as an indication for default stack size configuration * Adjust conditional compilation to reflect the changes in stack size handling for the NuttX platform This change improves clarity and consistency in stack size configuration across platforms. Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
This commit is contained in:
parent
ae06b79dcb
commit
15a93c5683
1 changed files with 11 additions and 6 deletions
|
@ -8,14 +8,19 @@ use crate::sys::weak::weak;
|
||||||
use crate::sys::{os, stack_overflow};
|
use crate::sys::{os, stack_overflow};
|
||||||
use crate::time::Duration;
|
use crate::time::Duration;
|
||||||
use crate::{cmp, io, ptr};
|
use crate::{cmp, io, ptr};
|
||||||
#[cfg(not(any(target_os = "l4re", target_os = "vxworks", target_os = "espidf")))]
|
#[cfg(not(any(
|
||||||
|
target_os = "l4re",
|
||||||
|
target_os = "vxworks",
|
||||||
|
target_os = "espidf",
|
||||||
|
target_os = "nuttx"
|
||||||
|
)))]
|
||||||
pub const DEFAULT_MIN_STACK_SIZE: usize = 2 * 1024 * 1024;
|
pub const DEFAULT_MIN_STACK_SIZE: usize = 2 * 1024 * 1024;
|
||||||
#[cfg(target_os = "l4re")]
|
#[cfg(target_os = "l4re")]
|
||||||
pub const DEFAULT_MIN_STACK_SIZE: usize = 1024 * 1024;
|
pub const DEFAULT_MIN_STACK_SIZE: usize = 1024 * 1024;
|
||||||
#[cfg(target_os = "vxworks")]
|
#[cfg(target_os = "vxworks")]
|
||||||
pub const DEFAULT_MIN_STACK_SIZE: usize = 256 * 1024;
|
pub const DEFAULT_MIN_STACK_SIZE: usize = 256 * 1024;
|
||||||
#[cfg(target_os = "espidf")]
|
#[cfg(any(target_os = "espidf", target_os = "nuttx"))]
|
||||||
pub const DEFAULT_MIN_STACK_SIZE: usize = 0; // 0 indicates that the stack size configured in the ESP-IDF menuconfig system should be used
|
pub const DEFAULT_MIN_STACK_SIZE: usize = 0; // 0 indicates that the stack size configured in the ESP-IDF/NuttX menuconfig system should be used
|
||||||
|
|
||||||
#[cfg(target_os = "fuchsia")]
|
#[cfg(target_os = "fuchsia")]
|
||||||
mod zircon {
|
mod zircon {
|
||||||
|
@ -52,10 +57,10 @@ impl Thread {
|
||||||
let mut attr: mem::MaybeUninit<libc::pthread_attr_t> = mem::MaybeUninit::uninit();
|
let mut attr: mem::MaybeUninit<libc::pthread_attr_t> = mem::MaybeUninit::uninit();
|
||||||
assert_eq!(libc::pthread_attr_init(attr.as_mut_ptr()), 0);
|
assert_eq!(libc::pthread_attr_init(attr.as_mut_ptr()), 0);
|
||||||
|
|
||||||
#[cfg(target_os = "espidf")]
|
#[cfg(any(target_os = "espidf", target_os = "nuttx"))]
|
||||||
if stack > 0 {
|
if stack > 0 {
|
||||||
// Only set the stack if a non-zero value is passed
|
// Only set the stack if a non-zero value is passed
|
||||||
// 0 is used as an indication that the default stack size configured in the ESP-IDF menuconfig system should be used
|
// 0 is used as an indication that the default stack size configured in the ESP-IDF/NuttX menuconfig system should be used
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
libc::pthread_attr_setstacksize(
|
libc::pthread_attr_setstacksize(
|
||||||
attr.as_mut_ptr(),
|
attr.as_mut_ptr(),
|
||||||
|
@ -65,7 +70,7 @@ impl Thread {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(target_os = "espidf"))]
|
#[cfg(not(any(target_os = "espidf", target_os = "nuttx")))]
|
||||||
{
|
{
|
||||||
let stack_size = cmp::max(stack, min_stack_size(attr.as_ptr()));
|
let stack_size = cmp::max(stack, min_stack_size(attr.as_ptr()));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue