Получение ссылки на текущий boost :: thread / прерывание основного потока - PullRequest
2 голосов
/ 02 марта 2011

Я пытаюсь получить ссылку на основной буст :: поток выполнения, чтобы я мог его прервать.Тем не менее, Boost :: Thread, кажется, не предоставляет никакого способа сделать это.

Я искал в интернете, но не могу найти ответ на этот вопрос.
Я видел некоторые старые ответы, но они, похоже, относятся к старому буст-коду.
Самый близкий сказал, что использование boost::thread t; (конструктор по умолчанию) даст мне ссылку на текущий поток.Тем не менее, в документации по бусту, кажется, говорится, что это создаст ссылку на not-a-thread .

Моя главная цель - прервать основной поток, а не получить ссылку натекущий boost :: thread, но это казалось самым простым способом.

Мое текущее решение - создать новый поток из main и просто присоединиться к нему.Есть ли способ получить текущий объект потока (или прервать его) и не использовать этот обходной путь?

Спасибо

1 Ответ

1 голос
/ 02 марта 2011

Созданный по умолчанию объект boost::thread, используемый для (в v1.34 и более ранних версиях) ссылки на текущий поток, но он больше не делает этого.

Вы не можете прервать основной поток в boost.Ваш обходной путь - создание нового потока для выполнения работы и присоединение к нему с main() - лучший способ.

...