adjustments for platforms with 64k page size
parent
5728c30da1
commit
db38b9d368
|
@ -102,8 +102,10 @@ OSTD_EXPORT std::size_t stack_traits::page_size() noexcept {
|
||||||
}
|
}
|
||||||
|
|
||||||
OSTD_EXPORT std::size_t stack_traits::minimum_size() noexcept {
|
OSTD_EXPORT std::size_t stack_traits::minimum_size() noexcept {
|
||||||
/* typically 8 KiB but can be much larger on some platforms */
|
/* always at least 2 pages, typically 8k on x86_64, but for
|
||||||
return SIGSTKSZ;
|
* example on ppc64 this will be 128k because 64k page size
|
||||||
|
*/
|
||||||
|
return std::max(std::size_t(SIGSTKSZ), 2 * page_size());
|
||||||
}
|
}
|
||||||
|
|
||||||
OSTD_EXPORT std::size_t stack_traits::maximum_size() noexcept {
|
OSTD_EXPORT std::size_t stack_traits::maximum_size() noexcept {
|
||||||
|
@ -112,8 +114,8 @@ OSTD_EXPORT std::size_t stack_traits::maximum_size() noexcept {
|
||||||
}
|
}
|
||||||
|
|
||||||
OSTD_EXPORT std::size_t stack_traits::default_size() noexcept {
|
OSTD_EXPORT std::size_t stack_traits::default_size() noexcept {
|
||||||
/* default to at least 64 KiB (see minimum_size comment) */
|
/* at least 64k unless minimum is bigger (typically 64k page platforms) */
|
||||||
constexpr std::size_t r = std::max(8 * 8 * 1024, SIGSTKSZ);
|
std::size_t r = std::max(std::size_t(8 * 8 * 1024), minimum_size());
|
||||||
if (is_unbounded()) {
|
if (is_unbounded()) {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue