#include <ext/hash_map>
#include <vector>
+#include <queue>
+#include <pthread.h>
+#include <semaphore.h>
#include "action.h"
class Node;
void execute();
+
protected:
void makePlan(Node* node);
void addNode(Node* node);
-
+ void executePlan();
+ void replan();
+ int cleanupExecution();
+ int executeChildren(Node* node);
+
+ sem_t _nodes;
+ sem_t _list;
+ std::queue<Node*> _executedNodes;
+
Node* _start;
Node* _finish;
__gnu_cxx::hash_map<std::string,Node*> _addedEffects;