-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uso de Locks y item en pauta #503
Comments
El error es pickle.UnpicklingError: unpickling stack underflow. Se que este error ya esta en otras issues pero cree esta porque no se si la solucion es valida dado la pauta |
Hola! Los profesores hablaron y llegaron a la siguiente resolución: no deben implementar lock en el tema de recibir, sino que solamente en las zonas criticas. En particular, pickle no es thread safe, entonces habría que usar lock cada vez que se serialice o deserialice un mensaje. Avísame si se respondió tu duda🤗 |
Osea que si implemento un lock para el pickle como practicamente no se nota la diferencia en tiempo que eso porduce, entonces no habra problema? |
No entiendo porque seria para recibir mensajes por que cuando uno hace recv lo hace sobre el socket del cliente en especifico que uno quiere escuchar, entonces no seria necesario. Ademas que si le pongo un lock al recv entonces los threads de escuchar clientes se vuelven inutiles porque solo podria escuchar a un cliente a la vez y mientras ese uno no mande un mensaje, el resto tampoco podra hacerlo. Por ejemplo si le pongo un lock al recv solo 1 cliente podria apretar el boton comenzar y el resto no |
Hola! Acabo de actualizar la respuesta, gracias por hacernos ver ese error. |
Prerrequisitos
(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")
Duda
Hola tengo una duda con la pauta porque hay un item en uso de sockets que dice:
"Las aplicaciones pueden trabajar concurrentemente sin bloquearse por escuchar un socket"
Lo que ocurre es que por lo que estuve viendo pickle no es 100% thread safe, entonces si por ejemplo implemento el bonus del tiempo y tengo un threads que le actualiza el tiempo constantemente al cliente y otro thread que actualiza el resto de eventos, entoces si es que dos threads llaman a pickle al mismo tiempo por algun motivo como que crashea. La solucion que encontre online consitia en el uso de locks de manera que el servidor solo pueda mandar un mensaje a la vez y por lo tanto los clientes puedan escuchar un solo mensaje a la vez, pero no se si eso me reduciria el puntaje en este item, o no se refiere a eso?
The text was updated successfully, but these errors were encountered: