Skip to content
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

Nil value detected related to driving skill #89

Open
tnguyenh opened this issue Feb 11, 2020 · 5 comments
Open

Nil value detected related to driving skill #89

tnguyenh opened this issue Feb 11, 2020 · 5 comments
Assignees
Labels

Comments

@tnguyenh
Copy link
Collaborator

Problème de nil value detected, dans l'action 'update', de l'espèce 'car' (vers ligne 1834).

image

Je pense que c'est en rapport avec l'issue #80 , ce serait bien de régler ça rapidement... je peux réutiliser l'astuce du copy je pense, j'attends de voir si tu as une meilleure idée @ptaillandier

@ptaillandier
Copy link
Collaborator

ptaillandier commented Feb 11, 2020 via email

@ptaillandier
Copy link
Collaborator

ptaillandier commented Feb 11, 2020 via email

@ptaillandier
Copy link
Collaborator

ptaillandier commented Feb 11, 2020 via email

@tnguyenh
Copy link
Collaborator Author

tnguyenh commented Feb 18, 2020

Désolé réponse tardive, et manque de détails dans l'explication du problème. Mais j'avais réussi à contourner le problème.

Le problème à cette ligne précise est de reconstruire un chemin lorsque le réseau de route est modifié (routes qui passent de n voies à 0). Recalculer un chemin en utilisant les outils existant ne marche pas car les agents cherchent à se repositionner sur un des sommets avant de reprendre leur trajet. Ce qui donne des trajectoires très exotiques.

Du coup le principe était de recalculer un chemin tout en gardant la position actuelle sur la route courante, et donc de calculer l'itinéraire après le sommet suivant, et de recombiner le tout.

Cela marche bien a priori, cependant parfois le code n'est pas suivi exactement: par exemple pour le code suivant:

if current_road != nil{
	road r <- road(current_road);
}

on se retrouve parfois avec une nil value detected au niveau de l'assignation, alors que le test a été passé correctement. J'imagine qu'il y a une histoire de modification concurrente ou de threads concurrent. Du coup en utilisant un road r <- copy(road(current_road)) avant de rentrer dans le statement 'if' ça passe.

@ptaillandier
Copy link
Collaborator

ptaillandier commented Feb 18, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants