Imaginate q tenes un thread T1 que ya esta corriendo y decidis pasar (mover) el objeto ClientThread a otro lado. El constructor por movimiento hace un stop y luego un join y definitivamente eso no es esperable!
Lo q tenes que hacer es q el objeto thread se mueva de un ClientThread a otro con std::move.
Si haces un paralelismo con Vector, estarias moviendo un buffer allocado (malloc) de un Vector a otro Vector y por alguna razon deciste q durante el movimiento hay q hacer free del buffer allocado. Entonces cual es el sentido de mover si me liberas lo allocado?
Lo mismo aplica a ClientThread, por que mover implica un join?
https://github.com/mati1297/tp3_taller1/blob/02f1d76d47703c8b2a0c49a804182b66072cf47c/server_client_thread.cpp#L21
Imaginate q tenes un thread T1 que ya esta corriendo y decidis pasar (mover) el objeto ClientThread a otro lado. El constructor por movimiento hace un stop y luego un join y definitivamente eso no es esperable!
Lo q tenes que hacer es q el objeto thread se mueva de un ClientThread a otro con
std::move
.Si haces un paralelismo con Vector, estarias moviendo un buffer allocado (malloc) de un Vector a otro Vector y por alguna razon deciste q durante el movimiento hay q hacer free del buffer allocado. Entonces cual es el sentido de mover si me liberas lo allocado?
Lo mismo aplica a ClientThread, por que mover implica un join?