logic: reimplemented task system to abort ast visiting
* reimplemented interrupting TaskParseCxx by adding a listener for the MessageInterruptTask and returning a failure status code on update. This cancels the parent sequence task which results in the indexed items not getting inserted into the persistent storage * removed the capability for interrupting from TaskScheduler * changed task system to be closer to the standard behavior tree implementation * changed task system to accommodate the 3 status return types: Running, Success and Failure * made TaskGroupSequential fail once a member task fails * made TaskGroupParallel fail once a member task fails * split TaskParse... into one task for indexing and one task for injecting * added TaskRunner that handles updating and resetting the managed task * fixed numbers that are shown as parsed file count in indexing ui * fixed deadlock that originated from interaction between TaskScheduler and MessageQueue (one thread wanted to destroy a message listener on a task while the other one wanted to send as message as a task)
This commit is contained in:
@@ -14,6 +14,8 @@ public:
|
||||
IntermediateStorage();
|
||||
virtual ~IntermediateStorage();
|
||||
|
||||
void clear();
|
||||
|
||||
virtual Id addFile(const std::string& name, const std::string& filePath, const std::string& modificationTime);
|
||||
virtual Id addNode(int type, const std::string& serializedName, int definitionType);
|
||||
virtual Id addEdge(int type, Id sourceId, Id targetId);
|
||||
@@ -56,8 +58,6 @@ private:
|
||||
std::vector<StorageCommentLocation> m_commentLocations;
|
||||
std::vector<StorageError> m_errors;
|
||||
|
||||
std::unordered_map<Id, Id> m_nodeIdsToMemberEdgeIds;
|
||||
|
||||
Id m_nextId;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user