]> git.siccegge.de Git - frida/frida.git/blobdiff - src/bindings/Guile.hxx
properly terminate guile thread
[frida/frida.git] / src / bindings / Guile.hxx
index 612f33bdfb1fb6b6170bf6d67caff9392b1ba93b..63d5fcbafdad62bacbec6f8fbaa9c61fde1ba168 100644 (file)
@@ -4,14 +4,27 @@
 #include <libguile.h>
 #include <log4cxx/logger.h>
 
+#include "qt.hxx"
 #include "Interpreter.hxx"
 
+namespace guile {
+       class Geiser : public QThread {
+               Q_OBJECT
+       public:
+               Geiser(QObject* parent) : QThread(parent) {}
+               Geiser() {}
+       private:
+               void run() Q_DECL_OVERRIDE;
+       };
+}
+
 class GuileInterpreter : public QObject, public Interpreter {
     Q_OBJECT
     Q_PLUGIN_METADATA(IID "xyz.frida.Interpreter")
     Q_INTERFACES(Interpreter)
 public:
        GuileInterpreter();
+       virtual ~GuileInterpreter();
 
        int evaluate(const std::string& command,
                     std::ostream& stdout,
@@ -34,6 +47,7 @@ private:
        SCM guile_output_port;
        SCM guile_error_port;
        log4cxx::LoggerPtr logger;
+       guile::Geiser* geiser;
 };
 
 #endif /* INCLUDE__Guile_hxx_ */