mati1297 / tp3_taller1

0 stars 0 forks source link

Implementacion incorrecta #4

Open eldipa opened 2 years ago

eldipa commented 2 years ago

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?