Собссно, subj. Читая документацию по boost::thread понимаю, что при создании экземпляра потока с передачей ему функции в конструктор, он сразу начнёт её исполнять. Мне это поведение слегка неудобно. Надо отложить запуск функции до заданной точки выполнения. Пока единственное, что придумалось, выглядит вот так:
#include <boost/thread/thread.hpp>
//-----------------------------------------------------
void thread_function(void)
{
// Что-то делаем
return;
}
//-----------------------------------------------------
class class_name
{
private:
boost::thread th;
public:
class_name(void)
{
// Здесь что-то выполняется до запуска потока
th=boost::thread(thread_function); // Здесь должен стартовать поток
// Может быть, что-то ещё надо сделать
return;
}
};
Решение так себе получается, не очень красиво. У потоков системы (что Linux, что Windows) есть параметр «создать спящим». Но в boost::thread я такого не нашёл. Или я неправильно понимаю вообще задумку boost-овских потоков? Кто что посоветует?