Boost.Thread スタックサイズを設定する
boost::threadクラスには、attributesという内部クラスがあります。これのメンバ関数であるset_stack_size()を使用することで、スレッドの作成に使用するスタックサイズをstd::size_tで指定できます。
スタックサイズを設定したattributesオブジェクトへの参照をboost::threadクラスのコンストラクタに渡すことで、設定が反映されます。
#include <boost/thread.hpp> int main() { boost::thread::attributes attr; attr.set_stack_size(1024 * 10); // スタックサイズを10KBに設定 boost::thread t(attr, []{}); t.join(); }
スレッドの作成に使用するスタックサイズを取得するget_stack_size()というメンバ関数もありますが、これはset_stack_size()で設定した値を返すだけで、デフォルトでは0を返すようです。
参照:
Class boost::thread::attributes EXTENSION