Мне нужно увеличить размер стека boost::thread
объекта. Задача потока состоит в том, чтобы хранить большой набор трехмерных точек, который реализован рекурсивно и поэтому требует достаточно места в стеке.
int main(int argc, char* argv[]) {
Flashlight *flashlight = new Flashlight();
flashlight->thread_group = new boost::thread_group();
boost::thread::attributes attrs;
attrs.set_stack_size(16*1024*1024);
flashlight->orbslam_thread = new boost::thread(attrs, boost::bind(&Flashlight::orbslam_loop, flashlight));
flashlight->thread_group->add_thread(flashlight->orbslam_thread);
// initializing some more threads ...
flashlight->thread_group->join_all();
return 0;
}
A.) Правильно ли я увеличил размер стека потока до 16 МБ в приведенном выше коде?
B.) Можно ли как-то прочитать атрибуты, в частности текущий размер стека, объекта boost::thread
?