Multi-threading causes race condition when resolving hangover duration
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Reproduce el problema desde el final del tutorial con el uso de múltiples hilos habilitado y compáralo con dispatcher/mod.rs cuando el uso de múltiples hilos está deshabilitado. Inspecciona initiative_system.rs y encumbrance_system.rs en el depurador, centrándote en el efecto de estado Hangover eliminado y en los datos que se siguen proporcionando desde el datastore. Se considera terminado cuando encumbrance_system.rs observa los modificadores de estado correctos después de eliminar la entidad, incluso cuando los atributos vuelven a cambiar.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Running the project from the end of the tutorial.
initiative_system.rs:
Visually verified the code in my project matches the source code from the last chapter of the tutorial.
Stepped through with debugger and code executes as expected. The equipment changed component is added to the player entity and the status effect is deleted from the entities list.
encumbrance_system.rs:
Visually verified the relevant code in my project matches the source code from the last chapter of the tutorial.
Stepped through with debugger and code does not execute as expected. In the section where status effects are calculated, the "Hangover" status effect data is still being served from the datastore after the Status Effect entity has been deleted from the entities list in initiative_syste.rs (visually inspected in the debugger.)
Turning multi-threading off by commenting out the multi-threading pre-processor code in dispatcher/mod.rs fixes the problem.
When the player has an event that changes the attribute bonus again, the data in encumbrance_system.rs is serving the correct status modifiers (inspected in debugger).
It appears that multi-threading is causing the encumbrance system code to execute after the status effect entity is deleted but before the corresponding status effect modifies have been removed from the datastore.
- Lenguaje dominante
- Rust
- Estrellas
- 967
- Forks
- 166
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de amethyst/rustrogueliketutorial
-
Wrong typing in chapter 57aAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
[RESOLVED] Wayland IssueAbierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 45/100
Todos los issues de amethyst/rustrogueliketutorial
Issues similares
-
ai_p2
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ClickHouse/ClickHouse#123351 ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
github/copilot-sdk#2804 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
lance-format/lance#9655 ·
Los mantenedores suelen responder en 2 días
-
bug language::rust router
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Hexagon lifting issuesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Vector35/binaryninja-api#8621 · 1 comentario ·
Los mantenedores suelen responder en 2 días