Ending a thread

I have the following code :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
While (condition)
{
	if (condition)
	{
		thread t1(FuncName, parameters);
		t1.detach();
	}

	if (condition)
	{
		* something *
	}

	// Need to wait here, at the end of the while untill the thread t1 ends
}


I know there is the option of t1.join(), but I cannot use it since I used t1.detach()... (if I wont use it, I cant get out of the if condition without breaking the thread, which gives a runtime error)...

Maybe I can check if the thread is alive or not, and use it in a while loop
EX. while(thread.alive())

So I need to add insted of the note a line that wait untill thread t1 ends, and then go into the while loop again...


Thanks!
Last edited on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
While (condition)
{
	std::unique_ptr<std::thread> thr;
	if (condition)
	{
		thr.reset(new std::thread t1(FuncName, parameters));
	}

	if (condition)
	{
		* something *
	}
	thr->join();
	// Need to wait here, at the end of the while untill the thread t1 ends
}
Topic archived. No new replies allowed.