Сам стандарт не позволяет модифицировать или получить stacksize-var ICV.Так что вы обречены использовать решения, специфичные для реализации.
Теперь libgomp перенаправляет значения , заданные переменными среды , прямо в pthread .
Итак, выМожно сказать, что libgomp хранит stacksize-var в gomp_thread_attr
.К сожалению, это кажется локальным символом в libgomp
, и я не верю, что вы можете разумно получить к нему доступ.
libgomp initialize_env
уже вызывается во время инициализации библиотеки, а не в первой параллельной области, поэтому изменениепеременная окружения фактически не эффективна.
Для неосновных потоков вы можете по крайней мере прочитать фактическое значение.Хотя pthread может использовать выровненный размер стека, он может не совпадать со значением, указанным в libgomp.
size_t stacksize;
pthread_attr_t attr;
// TODO check return values
pthread_getattr_np(pthread_self(), &attr);
pthread_attr_getstacksize(&attr, &stacksize);