joaquinfontela / Taller-95.08-TP3

0 stars 0 forks source link

Cuidado con los joins en el destructor #6

Closed mlafroce closed 3 years ago

mlafroce commented 3 years ago

https://github.com/joaquinfontela/tp3-taller/blob/b5bd4fd3a8b154013e5db023b00602c0944452f4/server_src/ClientManager.cpp#L15

No está mal, pero cuidado con este patrón, ya que si run todavía estaba ejecutándose y llegaste a la etapa del destructor, run va a estar corriendo sobre un objeto a medio destruir.

mlafroce commented 3 years ago

Idem acá https://github.com/joaquinfontela/tp3-taller/blob/b5bd4fd3a8b154013e5db023b00602c0944452f4/server_src/SingleClientHandler.cpp#L9

joaquinfontela commented 3 years ago

Que recomendarias hacer aca en vez de esto?

joaquinfontela commented 3 years ago

Hacerlo al final del run?

mlafroce commented 3 years ago

En el run no podés porque hasta que no termina run no podés hacer join, te hacés auto-lock Las soluciones más sencillas que fui leyendo son:

El del wrapper es más verboso, no lo hace nadie, pero creo que quedaría Muy bueno, es como "este chico entendió RAII".

joaquinfontela commented 3 years ago

En cuanto a esto, mi problema es que justamente hago start en el run, y como dijiste arriba no puedo hacer join ahi.