0 votes

Error in the tool

0:00:04:0405 - Condition ' pelem->root ' is true.

Type:Error Description:
Time: 0:00:04:0405
C Error: Condition ' pelem->root ' is true.
C Source: core\self_list.h:46 C
Function: SelfList::List::add

Error in the external console

ERROR: SelfList::List::add: ERROR:
SelfList::List::add: Condition ' pelem->root '
is true. Condition ' pelem->root ' is true. At: At:
core\selflist.h:46 core\selflist.h:46

This seems to be caused by calling AStar#get_point_path() (GDScript) which calls AStar#_solve. I am lacking the C++ skills to debug what is going on and unfortunately, the assertions aren't commented nor do they emit a more helpful message which makes all of this kinda difficult to understand for a beginner.

Edit: After further testing, it turns out either AStar#get_point_path() or AStar#_solve() are not thread-safe, I think the latter one. I execute AStar#get_point_path() on another thread to avoid stuttering. This works just fine with only one thread but adding more than one causes the error. I tested this by adding a Mutex to lock down the method call.

asked May 31, 2018 in Engine by Jan Krüger (14 points)
edited May 31, 2018 by Jan Krüger

Please log in or register to answer this question.

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.