powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / boost fibers
2 сообщений из 2, страница 1 из 1
boost fibers
    #39103415
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начал изчать это чудо, не вкурил.. я думал, что пока не вызывешь boost::this_fiber::yield() или пока фибра не кончиться, поток не перепрыгнет на другой контекст. то есть думал, что все предсказуемо.. но тут
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 #include <iostream>
#include <thread>
#include <boost/fiber/all.hpp>

class dctor {
public:
	dctor() {if(cnt_++==0)std::cout << "ctor" << std::endl;}
	dctor(const dctor&) {cnt_++;assert(cnt_!=1);}
	~dctor() noexcept {std::cout << "dtor "  << --cnt_ << std::endl;}

	static int cnt_;
};
int dctor::cnt_=0;

int main(int argc, char** argv)
{
	std::cout << "begin" << std::endl;
	dctor dc;
	std::thread([dc](){std::cout << "\tfiber" << std::endl;}).detach();
	std::thread([dc](){std::cout << "\tfiber" << std::endl;}).detach();
	boost::this_fiber::yield();
	std::cout << "ends with: " << dctor::cnt_ << std::endl;

	return 0;
}



выводит
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
begin
ctor
dtor 3
dtor 2
dtor 	fiber4
dtor 3

dtor 2
	fiber
dtor 1
ends with: 1
dtor 0
...
Рейтинг: 0 / 0
boost fibers
    #39103421
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WTF! пить надо меньше было! твмт

админ, тему можно перенести в юмор )))))))))

зы: конечно, если использовать фибры, все работает как я запланировал )))
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / boost fibers
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]