Crash in Thread (Recv)

12/05/2014 18:40 Terrat#1
Hey ho,
arbeite derzeit an einen Server Projekt, 1 Client kann der Server wunderbar managen und Threade ihn jetzt damit er halte Multiclient fähig ist. Habe die Recv funktion in einen Thread getan doch leider crasht es jetzt. (abort()) !Wen ich es ohne Thread mache crasht es nicht!

Code:
std::vector <Client> CMover;
Code:
void   Client::T_Recv(){
	while (true)
	{ 
		if (T_RecvR == 1)
		{ 
			char Buffer[5];
			long test;
			_cout << "Socket:" << GetSocket() << _endl;
			test=recv(GetSocket(), Buffer, 4, 0); //<- Hard coded ;D
			std::cout << Buffer;//<- Hard coded ;D
		}
		Sleep(0);
	}
}
Code:
void BootCMoverThread(int i) {
	CMover[i].T_Recv();
}
Call
Code:
std::thread t_thread(BootCMoverThread, PosInV);
12/05/2014 21:21 snow#2
Code:
int &i
Code:
std::thread t_thread(BootCMoverThread, PosInV);
Mutig.
Schon mal versucht, i als Value und nicht als Referenz zu übergeben?
12/05/2014 22:12 Terrat#3
Quote:
Originally Posted by snow View Post
Code:
int &i
Code:
std::thread t_thread(BootCMoverThread, PosInV);
Mutig.
Schon mal versucht, i als Value und nicht als Referenz zu übergeben?
War ein Tipp Fehler hatte das vorhin wo ich unterwegs war per Handy abgetippt. :D Ist aber halt "immernoch" obwohl es ja "vorher" ist ;D
Debug:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
12/06/2014 11:40 Delinquenz#4
Du kannst den std::thread doch nicht am Ende der Scope zerstören lassen, ohne ihn mit std::thread::detach() zu detachen oder auf ihn mit std::thread::join() zu warten.