Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Jan Krüger |
Error in the tool
0:00:04:0405 - Condition ’ p_elem->_root ’ is true.
Type:Error Description:
Time: 0:00:04:0405
C Error: Condition ’ p_elem->_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 ’ p_elem->_root ’
is true. Condition ’ p_elem->_root ’ is true. At: At:
core\self_list.h:46 core\self_list.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.