summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-05-15 19:55:13 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2014-05-15 19:55:13 (GMT)
commitf9a620340ddce2a17fd775d1e210268cac13377b (patch)
tree58d8dad794e5a34237c2738fe77c151d0810624f /src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
parent49127140ed2ad91bfcf532b3d2265582cb80b0db (diff)
downloaduscxml-f9a620340ddce2a17fd775d1e210268cac13377b.zip
uscxml-f9a620340ddce2a17fd775d1e210268cac13377b.tar.gz
uscxml-f9a620340ddce2a17fd775d1e210268cac13377b.tar.bz2
Introduced interpreter.step()
Diffstat (limited to 'src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp')
-rw-r--r--src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
index d89d8ac..f232e52 100644
--- a/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
+++ b/src/uscxml/plugins/invoker/scxml/USCXMLInvoker.cpp
@@ -43,7 +43,8 @@ USCXMLInvoker::~USCXMLInvoker() {
_cancelled = true;
Event event;
event.name = "unblock.and.die";
- _invokedInterpreter.receive(event);
+ if (_invokedInterpreter)
+ _invokedInterpreter.receive(event);
};
boost::shared_ptr<InvokerImpl> USCXMLInvoker::create(InterpreterImpl* interpreter) {
@@ -84,6 +85,7 @@ void USCXMLInvoker::invoke(const InvokeRequest& req) {
if (_invokedInterpreter) {
DataModel dataModel(_invokedInterpreter.getImpl()->getDataModel());
_invokedInterpreter.getImpl()->setParentQueue(&_parentQueue);
+
// transfer namespace prefixes
_invokedInterpreter.setNameSpaceInfo(_parentInterpreter->getNameSpaceInfo());
_invokedInterpreter.getImpl()->_sessionId = req.invokeid;
@@ -92,7 +94,6 @@ void USCXMLInvoker::invoke(const InvokeRequest& req) {
_invokedInterpreter.getImpl()->setInvokeRequest(req);
_invokedInterpreter.start();
-// tthread::this_thread::sleep_for(tthread::chrono::seconds(1));
} else {
/// test 530
_parentInterpreter->receive(Event("done.invoke." + _invokeId, Event::PLATFORM));