netaneldj / 7542-Taller-TP3

0 stars 0 forks source link

El close del socket debería ser anterior a borrar los clientes. Esto es una Race #25

Open fedemgp opened 4 years ago

fedemgp commented 4 years ago

https://github.com/netaneldj/tp3/blob/8cda72ad130c619f38e1a2bd75dd0979eb313064/server_ClientManager.cpp#L19-L22

El hilo aceptador va a seguir funcionando mientras estás borrando clientes que pueden estar en funcionamiento todavía.

fedemgp commented 4 years ago

La race condition se encuentra en que el hilo aceptador puede estar aceptando un cliente, llamando posteriormente a deleteOldClients, mientras vos estás iterando el vector en otro hilo para hacer un delete. el recurso compartido en este caso es el vector.